让人蛋疼的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

相关文章

  • JavaScript 盒模型 尺寸深入理解

    JavaScript 盒模型 尺寸深入理解

    当任意一个块级元素的宽度或高度被显式指定,它应当只确定这个可见元素自身(内容区)的宽度或高度,而padding, border和margin随后被应用
    2012-12-12
  • JS中for循序中延迟加载动态效果的具体实现

    JS中for循序中延迟加载动态效果的具体实现

    今天在做一个前端的效果的时候碰到一个棘手的问题,就是实现一个动态的圆柱效果,废话不多少,直接上代码
    2013-08-08
  • javascript编码的几个方法详细介绍

    javascript编码的几个方法详细介绍

    escape定义和用法escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。语法 escape(string)参数描述string必需。要被转义或编码的字符串。返回值已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列,需要了解的朋友可以参考下
    2013-01-01
  • JavaScript DOM基础

    JavaScript DOM基础

    这篇文章主要介绍了JavaScript的DOM基础知识,需要的朋友可以参考下
    2015-04-04
  • 深入理解javaScript中的事件驱动

    深入理解javaScript中的事件驱动

    本篇文章是对javaScript中的事件驱动进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • JS中处理时间之setUTCMinutes()方法的使用

    JS中处理时间之setUTCMinutes()方法的使用

    这篇文章主要介绍了JavaScript中处理时间之setUTCMinutes()方法的使用,是JavaScript入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • javascript基础知识大集锦(一) 推荐收藏

    javascript基础知识大集锦(一) 推荐收藏

    主要知识点:js数组,数字函数,字符串函数,表单验证,hashMap,堆栈,日期函数,call函数 等。
    2011-01-01
  • JavaScript中的lastIndexOf()方法使用详解

    JavaScript中的lastIndexOf()方法使用详解

    这篇文章主要介绍了JavaScript中的lastIndexOf()方法使用详解,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • 使用 stylelint检查CSS_StyleLint

    使用 stylelint检查CSS_StyleLint

    你需要一个防止错误产生的机器,可以理解CSS并且理解你:你的意图、喜好、主意以及弱点。 只要是它可以阻止的错误它都会持续阻止。同时,你和你的同事可以一直改善机器,扩展它的功能并且削弱其局限性。
    2016-04-04
  • JavaScript中匿名、命名函数的性能测试

    JavaScript中匿名、命名函数的性能测试

    这篇文章主要介绍了JavaScript中匿名、命名函数的性能测试,简单来讲匿名即没有名字的函数,它和命名函数相比性能如何呢,本文即是对它们性能的测试,需要的朋友可以参考下
    2014-09-09

最新评论