JavaScript有很多地方和我们熟知的C、Java等的编程习惯不同,这些不同会产生很多让人意想不到的事情。前段时间在知乎有人发了写Javascrtip试题,觉得挺好玩的,这里跟大家分享一下。
01
(function () { return typeof arguments; })(); A. "object" B. "array" C. "arguments" D. "undefined"
答案:A
02
var f = function g() { return 23; }; typeof g(); A. "number" B. "undefined" C. "function" D. Eorror
答案:D
03
(function (x) { delete x; return x; })(1); A. 1 B. null C. undefined D. Error
答案:A
04
var y = 1, x = y = typeof x; x; A. 1 B. "number" C. undefined D. "undefined"
答案: D
05
(function f(f) { return typeof f(); })(function () { return 1; }); A. "number" B. "undefined" C. "function" D. Error
答案:A
06
var foo = { bar: function () { return this.baz; }, baz: 1 }; (function () { return typeof arguments[0](); })(foo.bar); A. "undefined" B. "object" C. "number" D. "function"
答案:A
07
var foo = { bar: function () { return this.baz; }, baz: 1 }; typeof (f = foo.bar)(); A. "undefined" B. "object" C. "number" D. "function"
答案:A
08
var f = (function f() { return "1"; }, function g() { return 2; })(); typeof f; A. "string" B. "number" C. "function" D. "undefined"
答案: B
09
var x = 1; if (function f() {}) { x += typeof f; } x; A. 1 B. "1function" C. "1undefined" D. NaN
答案: C
10
var x = [typeof x, typeof y][1]; typeof typeof x; A. "number" B. "string" C. "undefined" D. "object"
答案: B
11
(function (foo) { return typeof foo.bar; })({ foo: { bar: 1 } }); A、“undefined” B、“object” C、“number” D、Error
答案: A
12
(function f() { function f() { return 1; } return f(); function f() { return 2; } })(); A、1 B、2 C、Error (e.g. “Too much recursion”) D、undefined
答案:B
13
function f() { return f; } new f() instanceof f; A、true B、false
答案:B
14
with (function(x, undefined){}) length; A、1 B、2 C、undefined D、Error
答案:B
具体答案大家可以自己运行得出,为什么会得出这样的结果,我也有一些不懂的地方,怕误人子弟,所以这里就不解答这里的问题了。
本文地址:http://www.nowamagic.net/librarys/veda/detail/1593,欢迎访问原出处。
大家都在看