关于javascript:在JS中什么时候需要”var”?

When is the “var” need in js?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Difference between using var and not using var in JavaScript

有时,我看到有人这样做

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

}

但我也看到人们这样做…

1
2
3
4
for(i=0; i< array.length; i++){
 //bababa

}

两者有什么不同?谢谢您。


var关键字从不"需要"。但是,如果不使用它,则声明的变量将在全局范围内公开(即作为window对象的属性)。通常这不是你想要的。

通常,您只希望您的变量在当前范围内可见,这是var为您所做的。它只声明当前作用域中的变量(不过请注意,在某些情况下,"当前作用域"将与"全局作用域"一致,在这种情况下,使用var与不使用var没有区别)。

在编写代码时,您应该使用以下语法:

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

或者,如果必须这样做:

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

这样做:

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

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


从技术上讲,你永远不必使用它,JavaScript将在它的道路上兴高采烈——使用你的变量,即使你没有提前声明它们。

但是,在实践中,在声明变量时应该始终使用它。它将使您的代码更具可读性,并帮助您避免混淆,特别是如果您使用的变量具有相同的名称和不同的作用域…

1
2
3
4
5
var n = 23;
function functThat( )
{
   var n = 32; //"local" scope
}