什么时候在Javascript中使用var

也许很容易的问题。

我应该在JavaScript中使用var关键字。 在我看来,使用它或不是有相同的效果(但我当然还在学习语言)

比如这些对我来说都是一样的:

 (function(){ var a = "mundo" alert("Hola, " + a ) })() 

 (function(){ a = "mundo" alert("Hola, " + a ) })() 

但是,当然必须有一个更复杂的例子,其中的差异显现出来。

当你使用var ,你正在实例化当前范围中的一个variables。 这也将防止在当前范围内访问在较高范围内命名相同的variables。

在你的第一个例子中,'a'被实例化并在函数范围内设置。 在第二个例子中,由于缺lessvar所以在函数范围之外设置了“a”

var

 var a = "A" (function(){ var a = "B" alert(a) //B })() alert(a); //A 

没有var

 var a = "A"; (function(){ a = "B" alert(a) //B })() alert(a) //B 

使用var:

 var a = 'world'; myfunction = function(){ var a = "mundo" alert("Hola, " + a ) } myfunction(); //alerts 'hola, mundo' alert(a); //alerts 'world'; 

不使用var:

 var a = 'world'; myfunction = function(){ a = "mundo" alert("Hola, " + a ) } myfunction(); //alerts 'hola, mundo' alert(a); //alerts 'mundo' 

我认为你需要刷新Javascript对象作用域。

使用“var”关键字将您的variables放置在最顶端(全局)范围。 这意味着,如果一个函数使用相同的variables,你声明的“var”variables将覆盖函数中的(非var)variables… JavaScript Scopes

如果函数内部没有使用var,JS会在上面查找它,所以如果你在不同的函数中使用save vars,它们可能会发生冲突。 如果你正在定义新的variables,总是值得使用一个var。