10
09/2014
javascript quiz 2
看过 javascript quiz?好吧,继续看代码(点击代码看答案)
第一题
(function(){
return typeof arguments;
})();
object 没有参数,arguments 就是空数据
第二题
function a(){}
console.log(typeof a,typeof a())
function undefined
第三题
(function(x){
delete x;
return x;
})(1);
1 x 删除不了,arguments[0] 可以
第四题
var y = 1, x = y = typeof x;
console.log(x);
undefined 从右向左
第五题
(function f(f){
return typeof f();
})(function(){ return 1; });
number 其实等于执行的是
(function(f){
return typeof f(); //f() 执行后得到 1
})(function(){ return 1; });
第六题
var foo = {
bar: function() { return this.baz; },
baz: 1
};
(function(){
return typeof arguments[0]();
})(foo.bar);
undefined arguments[0]() 是可以执行的!
var foo = {
bar: function() { alert(1); },
baz: 1
};
(function(){
arguments[0]();
})(foo.bar);//会 alert 1实际上执行的是
var foo = {
bar: function() { console.log(this) },
baz: 1
};
foo.bar() 看控制台的 this,this 这时候不是 foo,而是 bar 这个 function
第七题
var foo = {
bar: function(){ return this.baz; },
baz: 1
}
typeof (f = foo.bar)();
undefined f 等于 foo.bar 简写,执行 f(),而 f.baz 的确没有定义
第八题
var f = (function f(){ return “1”; }, function g(){ return 2; })();
typeof f;
number f 现在是 2。 a=1,2 实际上等于 a=2。上面代码等于
f=(function(){return 2;})()
第九题
var x = 1;
if (function f(){}) {
x += typeof f;
}
x;
1number function 定义会被提升,所以 if(…) 成立,然后 。。。
第十题
var x = [typeof x, typeof y][1];
typeof typeof x;
“string” var 被提升;所以 [“undefined”,”undefined”][1] 就是 “undefined”,然后这就是个 “string”,”string” 的类型还是 “string”
第十一题
(function(foo){
return typeof foo.bar;
})({ foo: { bar: 1 } });
“undefined” 程序解读为:返回 object 的 bar 值的类型。执行这个 (function(ddd){console.log(ddd);})({ foo: { bar: 1 }}); 就知道为什么了,还不理解那就执行
(function(ddd){
console.log( ddd.bar);
})({ foo: { bar: 1 },bar:12313 });
第十二题
(function f(){
function f(){ return 1; }
return f();
function f(){ return 2; }
})();
2 函数定义会被提升,所以 f() 返回 2
第十三题
function f(){ return f; }
new f() instanceof f;
false 这个不太理解!下面返回 true
function f(){ return 1; }
new f() instanceof f;
第十四题
with (function(x, undefined,y){}) length;
3 function(x, undefined,y){} 这是个 function,对这个 function 做一些操作,要它的 length(参数个数)
原文来自: