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" )