是否有一组东西是每个JavaScript程序员都应该知道的,以便能够说“我懂JavaScript”?


当前回答

数组中。Length方法不是数组项的计数,而是最高索引。即使该项被设置为undefined

var a = [];
a.length;   // === 0
a[10];      // === undefined
a[10] = undefined;
a.length;   // === 11
a.pop();    // === undefined
a.length;   // === 10

这种行为很难与语言设计错误区分开来。

其他回答

以下几点也很重要:

1)可变提升。 2)作用域链和激活对象。

然后是这样的::)

3) wtfjs.com

4)一切都是一个对象http://www.lifeinafolder.com/images/Js.jpg

如何使用好的部分,如何避免糟糕的部分。

在Javascript中,性能很重要。

没有智能编译器来优化你的代码,所以你应该更小心,当你写javascript代码比语言像c#, Java…

如果你想成为一个真正的JavaScript高手,你应该知道完美JavaScript测试中每个问题的答案。

下面这个例子可以让你胃口大开:

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

这个表达式返回什么? “数量” “定义” “功能” 错误

它可以被禁用。