是否有一组东西是每个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
jQuery是我最好的推荐。不仅仅是代码本身,它的习惯用法、风格和背后的思想都是最值得模仿的。
变量是全局的,除非声明为局部的!!
Bad (DoSomething()只被调用10次):
function CountToTen()
{
for(i=0; i< 10; i++)
{
DoSomething(i);
}
}
function countToFive()
{
for(i=0; i<5; i++)
{
CountToTen();
}
}
CountToFive();
好(DoSomething()按预期被调用50次):
function CountToTen()
{
var i;
for(i=0; i< 10; i++)
{
DoSomething(i);
}
}
function countToFive()
{
var i;
for(i=0; i<5; i++)
{
CountToTen();
}
}
CountToFive();
如何使用好的部分,如何避免糟糕的部分。
JavaScript与其他语言的差异比您想象的要大得多。观看这个很棒的谷歌技术讲座,获得印象:http://www.youtube.com/watch?v=hQVTIJBZook