首页 > 代码库 > 一些奇怪的JavaScript试题

一些奇怪的JavaScript试题

JavaScript有很多地方和我们熟知的C、Java等的编程习惯不同,这些不同会产生很多让人意想不到的事情。前段时间在知乎有人发了写Javascrtip试题,觉得挺好玩的,这里跟大家分享一下。定州市科技工业局

01

1(function () { 
2    return typeof arguments; 
3})(); 
4A. "object"
5B. "array"
6C. "arguments"
7D. "undefined"

答案:A

02

1var f = function g() {
2        return 23;
3    };
4typeof g();
5A. "number"
6B. "undefined"
7C. "function"
8D. Eorror

答案:D

03

1(function (x) {
2    delete x;
3    return x;
4})(1);
5A. 1
6B. null
7C. undefined
8D. Error

答案:A

04

1var y = 1,
2    x = y = typeof x;
3x;
4A. 1
5B. "number"
6C. undefined
7D. "undefined"

答案: D

05

1(function f(f) {
2    return typeof f();
3})(function () {
4    return 1;
5});
6A. "number"
7B. "undefined"
8C. "function"
9D. Error

答案:A

06

01var foo = {
02    bar: function () {
03        return this.baz;
04    },
05    baz: 1
06};
07(function () {
08    return typeof arguments[0]();
09})(foo.bar);
10A. "undefined"
11B. "object"
12C. "number"
13D. "function"

答案:A

07

01var foo = {
02    bar: function () {
03        return this.baz;
04    },
05    baz: 1
06};
07typeof (f = foo.bar)();
08A. "undefined"
09B. "object"
10C. "number"
11D. "function"

答案:A

08

01var f = (function f() {
02    return "1";
03}, function g() {
04    return 2;
05})();
06typeof f;
07A. "string"
08B. "number"
09C. "function"
10D. "undefined"

答案: B

09

1var x = 1;
2if (function f() {}) {
3    x += typeof f;
4}
5x;
6A. 1
7B. "1function"
8C. "1undefined"
9D. NaN

答案: C

10

1var x = [typeof x, typeof y][1];
2typeof typeof x;
3A. "number"
4B. "string"
5C. "undefined"
6D. "object"

答案: B

11

01(function (foo) {
02    return typeof foo.bar;
03})({
04    foo: {
05        bar: 1
06    }
07});
08A、“undefined”
09B、“object”
10C、“number”
11D、Error

答案: A

12

01(function f() {
02    function f() {
03        return 1;
04    }
05    return f();
06    function f() {
07        return 2;
08    }
09})();
10A、1
11B、2
12C、Error (e.g. “Too much recursion”)
13D、undefined

答案:B

13

1function f() {
2    return f;
3}
4new f() instanceof f;
5A、true
6B、false

答案:B

14

view source
 
print?
1with (function(x, undefined){}) length;
2A、1
3B、2
4C、undefined
5D、Error

答案:B

具体答案大家可以自己运行得出,为什么会得出这样的结果,我也有一些不懂的地方,怕误人子弟,所以这里就不解答这里的问题了。

一些奇怪的JavaScript试题