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