让人蛋疼的JavaScript语法特性

 更新时间:2014年09月30日 09:52:23   投稿:hebedich  
JavaScript有很多地方和我们熟知的C、Java等的编程习惯不同,这些不同会产生很多让人意想不到的事情。今天我们就来探讨下这些让人蛋疼的语法特性

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

相关文章

最新评论