何时在Javascript中使用var

时间:2011-03-22 22:44:05

标签: javascript var

也许很简单的问题。

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

例如,这些对我来说似乎都是一样的:

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

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

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

4 个答案:

答案 0 :(得分:80)

使用var时,您将在当前范围中实例化变量。这也将阻止在当前范围内访问更高范围内名为相同的变量。

在您的第一个示例中,'a'正在实例化并在函数范围内设置。在第二个示例中,由于缺少var

,因此在函数范围之外设置了'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

答案 1 :(得分:15)

使用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'

答案 2 :(得分:3)

我认为你需要在Javascript对象范围上刷新自己。

使用“var”关键字会将变量置于最顶层(全局)范围。这意味着如果函数使用相同的变量,您声明的“var”变量将覆盖函数中的(非变量)变量... JavaScript Scopes

答案 3 :(得分:1)

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