让人蛋疼的JavaScript语法特性

时间:2022-12-06 16:02:17

在知乎上看到的有人发布的和javascript有关的试题,和大家分享下,虽然是N久前的事了,但这些题相当经典,不免让人觉得javascript真是门蛋疼的语言。

1.

复制代码 代码如下:


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

 

    A. "object"
    B. "array"
    C. "arguments"
    D. "undefined"

 

答案:A

2.

复制代码 代码如下:


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

 

        A. "number"
        B. "undefined"
        C. "function"
        D. Eorror

 

答案:D

3.

复制代码 代码如下:


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

 

        A. 1
        B. null
        C. undefined
        D. Error

 

答案:A

4.

复制代码 代码如下:


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

 

        A. 1
        B. "number"
        C. undefined
        D. "undefined"

 

答案:D

5.

复制代码 代码如下:


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

 

        A. "number"
        B. "undefined"
        C. "function"
        D. Error

 

答案:A

6.

 

复制代码 代码如下:


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

7.

 

复制代码 代码如下:


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

 

        A. "undefined"
        B. "object"
        C. "number"
        D. "function"

 

答案:A

8.

复制代码 代码如下:


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

 

        A. "string"
        B. "number"
        C. "function"
        D. "undefined"

 

答案:B

9.

复制代码 代码如下:


 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

15.

复制代码 代码如下:

以下哪条语句会产生运行错误:()         
A.var obj = ();          
B.var obj = [];       
C.var obj = {};       
D.var obj = //;

 

答案:A