何时在javascript中使用var

When to use var in Javascript

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

也许这个问题很简单。

我应该在哪里使用javascript中的var关键字。在我看来,使用它或不使用它有同样的效果(当然,我还在学习这门语言)

例如,我觉得这两个都是一样的:

1
2
3
4
(function(){
  var a ="mundo"
  alert("Hola," + a )
})()

1
2
3
4
(function(){
  a ="mundo"
  alert("Hola," + a )
})()

但是,当然,必须有一个更复杂的例子来说明这种差异。


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

在第一个示例中,正在函数范围内实例化和设置"a"。在第二个示例中,由于缺少var,因此"a"被设置在功能范围之外。

使用var时:

1
2
3
4
5
6
7
var a ="A"
(function(){
  var a ="B"
  alert(a) //B
})()

alert(a); //A

var时:

1
2
3
4
5
6
7
var a ="A";
(function(){
  a ="B"
  alert(a) //B
})()

alert(a) //B


使用VaR:

1
2
3
4
5
6
7
8
var a = 'world';  
myfunction = function(){
  var a ="mundo"
  alert("Hola," + a )
}

myfunction();  //alerts 'hola, mundo'
alert(a);  //alerts 'world';

不使用var:

1
2
3
4
5
6
7
8
var a = 'world';  
myfunction = function(){
  a ="mundo"
  alert("Hola," + a )
}

myfunction();  //alerts 'hola, mundo'
alert(a);  //alerts 'mundo'


我认为您需要刷新JavaScript对象范围。

使用"var"关键字将把变量放在最顶层(全局)范围内。这意味着,如果一个函数使用相同的变量,您声明的"var"变量将覆盖函数中的(非var)变量…javascript范围


如果var不在函数内部使用,JS将在上面查找它,因此如果在不同的函数中使用save var,它们可能会发生冲突。如果要定义新变量,则始终值得使用var。