javascript – js中的“var”何时需要? [重复]

Possible Duplicate:
07000

有时,我看到有人这样做

for(var i=0; i< array.length; i++){
 //bababa

}

但我也看到人们这样做……

for(i=0; i< array.length; i++){
 //bababa

}

两者有什么不同?谢谢。

最佳答案
var关键字永远不会“需要”。但是,如果您不使用它,那么您声明的变量将在全局范围中公开(即作为窗口对象上的属性)。通常这不是你想要的。

通常,您只希望变量在当前范围内可见,这就是var为您所做的事情。它仅在当前范围内声明变量(但请注意,在某些情况下,“当前范围”将与“全局范围”重合,在这种情况下,使用var和不使用var之间没有区别)。

编写代码时,您应该更喜欢这种语法:

for(var i=0; i< array.length; i++){
    //bababa
}

或者,如果你必须,那么这样:

var i;
for(i=0; i< array.length; i++){
   //bababa
}

这样做:

for(i=0; i< array.length; i++){
   //bababa
}

…将在全局范围内创建一个名为i的变量。如果其他人碰巧也在使用全局i变量,那么你刚刚覆盖了他们的变量。

转载注明原文:javascript – js中的“var”何时需要? [重复] - 代码日志