您的位置:首页 > Web前端 > JavaScript

[转] 考验你的JavaScript底细

2016-04-28 10:55 656 查看
http://sentsin.com/

尽管今日的JavaScript已经突飞猛进,但JS的许多特性仍然保留,以下题目并不是有意设坑,许多地方将验证你的JS底细,如果错了一半,请别告诉我你从事前端。

1.
(function(){
return typeof arguments;
})();


"object"

"array"

"arguments"

"undefined"

2.
var f = function g(){
return 23;
};
typeof g();


"number"

"undefined"

"function"

Error

3.
(function(x){
delete x;
return x;
})(1);


1

null

undefined

Error

4.
var y = 1, x = y = typeof x;
x;


1

"number"

undefined

"undefined"

5.
(function f(f){
return typeof f();
})(function(){ return 1; });


"number"

"undefined"

"function"

Error

6.
var foo = {
bar: function() {
return this.baz;
},
baz: 1
};
(function(){
return typeof arguments[0]();
})(foo.bar);


"undefined"

"object"

"number"

"function"

7.
var foo = {
bar: function(){
return this.baz;
},
baz: 1
}
typeof (f = foo.bar)();


"undefined"

"object"

"number"

"function"

8.
var f = (
function f(){
return "1";
},
function g(){
return 2;
}
)();
typeof f;


"string"

"number"

"function"

"undefined"

9.
var x = 1;
if (function f(){}) {
x += typeof f;
}
x;


1

"1function"

"1undefined"

NaN

10.
var x = [typeof x, typeof y][1];
typeof typeof x;


"number"

"string"

"undefined"

"object"

11.
(function(foo){
return typeof foo.bar;
})({ foo: { bar: 1 } });


"undefined"

"object"

"number"

Error

12.
(function f(){
function f(){ return 1; }
return f();
function f(){ return 2; }
})();


1

2

Error (e.g. "Too much recursion")

undefined

13.
function f(){ return f; }
new f() instanceof f;


true

false

14.
with (function(x, undefined){}) length;


1

2

undefined

Error

思考题:
如何改变 undefined的typeof类型 ? (即 typeof undefined 或者 typeof(undefined) 都不为"undefined" )
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: