让人蛋疼的JavaScript语法特性

在知乎上看到的有人发布的和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