javascript练习题·(1)
1.参数集合是什么?
(function(){
return typeof arguments;
})();
的结果是?
typeOf只能以字符串的形式返回数据类型
js中包括6种数据类型——Number,String,Boolean,Object,undefined,null。
arguments是实参的集合——是一个对象(可以进行数组的循环,但没有数组的方法)。
所以答案是"Object"
2.函数表达式
var f=function g(){
return 23;
};
typeof g();
的结果是?
刚才说到typeOf只能返回六种数据类型,
f的声明是函数表达式。这种写法下,f是可以找到,但g不一定找得到。
所以会报错
3.delete方法删除什么?
(function(x){
delete x;
return x;
})(1);
的执行结果是?
delete方法只能删除对象的属性,所以x根本删不掉。
自执行的函数参数为1,所以返回1
4.连等赋值
var y=1,x=y=typeof x;
console.log(x);
执行结果是?
连等号的赋值过程是从右往左运算的。一开始x没有声明。那么x就是undefined,
接着x和y当然都也是undefined
运用typeof后,看到的结果是"undefined"。
5.函数还是参数?
console.log((function f(f){
return typeof f();
})(function(){return 1;}))
的执行结果是?
自执行函数返回的这个f()其实指的是是参数!所以结果是"number"
6.this的指向
var foo={
bar:function(){
return this.baz
},
baz:1
};
(function(){
return typeof arguments[0]();
})(foo.bar);
的执行结果是?
首先,这个foo对象定义有问题。作为方法,this指向的是调用者自身(这里是foo.bar),但是函数不存在baz这个属性,所以方法结果是undefined。
另一方面,和第四题类似,注意到arguments0就是一个函数自执行的结果,它已经从foo对象中剥离开来了,this指向arguments[0]
所以结果为"undefined"
扩展
上述条件不变
console.log(typeof (f=foo.bar)());
结果是?
显然,这个函数被剥离,this指向window,执行的结果是undefined
7.分组选择符
var f = (function f(){
return "1";
}, function g(){
return 2;
})();
typeof f;
的结果是?
好奇怪的写法!
这是分组选择符——选择的是变量最后一位。
var a=(1,2,3)
console.log(a)//3
所以结果是数字
8.判断语句的条件
var x = 1;
if (function f(){}) {
x += typeof f;
}
x;
的结果是什么?
注意:函数声明不允许写在if判断条件中!如果真的写了,全部返回真——因为只有0,空字符串,undefined,null,false才判断为假。
结果返回undefined。而1+undefined自然是‘1undefined’
9. "类型"的类型
var x = [typeof x, typeof y][1];
typeof typeof x;
遇到判断typeof判断typeof,肯定返回字符串
10.眼力
(function(foo){
return typeof foo.bar;
})({ foo: { bar: 1 } });
的执行结果是?
完全是考眼力了。参数是一个对象,这个对象只有一个属性foo。
所以结果是undefined。
12. 函数声明的预解析
(function f(){
function f(){ return 1; }
return f();
function f(){ return 2; }
})();
的结果是?
首先要明确,函数声明是预解析的,在return之前,两句声明都已经被解析了。所以返回的是2。
13.构造函数的禁忌
return的f()值的是里面的f()还是外面的f()?
function f(){ return f; }
new f() instanceof f;
的执行结果是?
instanceof返回的是一个布尔值。看他是不是构造函数的实例。
但是这个构造函数有很大的问题,构造函数在执行完毕之后,就变成了f值。所以不要给构造函数return东西。
14.函数的长度
with (function(x, undefined){}) length;
这里是函数的长度。实际上是函数形参的长度。
javascript练习题·(1)的更多相关文章
- JavaScript 练习题
练习题 1. 使用for循环输出1到50的值,要求每次循环只能输出一个值,每输出十个换一行. 2 日历生成器: 要求 用户输入,这个月有多少天,本月1号是星期几,自动生成日历 3. 表格生成器 4. ...
- HTML——JAVASCRIPT练习题——图片轮播
方法一: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...
- JavaScript练习题 全局变量 局部变量 作用域
前沿:大家好~我是阿飞~本次 任何简单的事情都可以复杂化,本次让我们来做下搞事情的练习题吧 例题1: var a = 1; function fn1(){ var a = 2; alert(a); / ...
- 3月25 JavaScript 练习题
一个关于找7的题 <script type="text/javascript" language="javascript"> for(var i=1 ...
- 廖雪峰JavaScript练习题3
请尝试写一个验证Email地址的正则表达式.版本一应该可以验证出类似的Email: 正则表达式: <!DOCTYPE html> <html> <head> < ...
- 廖雪峰JavaScript练习题2
请把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字.输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart'] 肯定有更简单的方法, ...
- 廖雪峰JavaScript练习题
练习:不要使用JavaScript内置的parseInt()函 数,利用map和reduce操作实现一个string2int()函数: <!DOCTYPE html> <html&g ...
- javascript练习题
function Vertex(city, x) { this.name = city; this.num = x; } var node0 = new Vertex("邯郸", ...
- <JavaScript>几道javascript练习题
问题1: 作用域(Scope) 考虑以下代码: (function() { var a = b = 5; })(); console.log(b); 控制台(console)会打印出什么? 答案 上述 ...
- javascript练习题(3):基础字符串运算
用两种方法实现下列问题! 1. 把一个字符串转化为驼峰写法 需求:margin-left=>marginLeft 思路一:split 把它转化为一个数组然后修改内容 function conve ...
随机推荐
- Powershell Get File/Disk Size
知识点: 1.获取路径中的文件夹:Get-ChildItem $startFolder | Where-Object {$_.PSIsContainer -eq $True} | Sort-Obje ...
- Connecting to Shares And Common Shares
Now that you have these shares, how do people use them? Assuming that you have a share called Apps o ...
- Django Signal 代码布局
需要确保信号注册函数在使用前就被引入,所以理论上你可以将其置于满足上述条件的任意位置. 官方推荐 将信号处理器定义在关联 app 目录下的 signals.py 中,在关联 app 的 apps.Ap ...
- 【转】spring和springMVC的面试问题总结
1.Spring中AOP的应用场景.Aop原理.好处? 答:AOP--Aspect Oriented Programming面向切面编程:用来封装横切关注点,具体可以在下面的场景中使用: Authen ...
- 解决 apt-get the following packages has unmet dependencies 问题
安装vpn遇到以下问题: 显示flinux print util和openconnect存在依赖库的冲突 此时尝试安装新的tk.vpnc-scripts.libopenconnect5,尝试apt-g ...
- 前端基础-css(2)
一.标准文档流 宏观的将,我们的web页面和ps等设计软件有本质的区别,web网页的制作,是个“流”,从上而下,像 “织毛衣”.而设计软件 ,想往哪里画东西,就去哪里画. 标准文档流下,有一些现象,比 ...
- PHP memcache的使用教程
(结尾附:完整版资源下载) 首先,为什么要用memcached?如果你看过InnoDB的一些书籍,你应该知道在存储引擎那一层是由一个内存池的.而在内存池中 又有一个缓冲池.而缓冲池就会缓冲查找的数据, ...
- 【JUnit】junit4的几个assert方法
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhtao01/article/details/27858225 在静态类junit.framewor ...
- lamp中的Oracle数据库链接
lamp一键安装包: https://lnmp.org/install.html 在CentOS 6.7 64位安装PHP的PDO_OCI扩展 Installing PDO_OCI extension ...
- [笔记]WiX制作msi安装包的例子
WiX是制作msi安装文件的工具,看了半天文档,感觉没有什么比一个例子更简单粗暴的了. <?xml version="1.0" encoding="UTF-8&qu ...