何时在Javascript中使用var

这个问题已经在这里有了答案:

  • var关键字的目的是什么?何时应使用(或省略)?                                     19个答案

也许很简单的问题。

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

例如,这两个对我来说似乎是相同的:

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

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

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

OscarRyz asked 2020-01-08T00:35:51Z
4个解决方案
83 votes

当使用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
Bodman answered 2020-01-08T00:36:27Z
15 votes

使用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'
Sam Dufel answered 2020-01-08T00:36:51Z
4 votes

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

使用“ var”关键字会将您的变量放在最高(全局)范围内。 这意味着,如果一个函数使用相同的变量,则声明的“ var”变量将覆盖函数中的(non-var)变量。JavaScript作用域

It Grunt answered 2020-01-08T00:37:16Z
1 votes

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

Agonych answered 2020-01-08T00:37:36Z
translate from https://stackoverflow.com:/questions/5398766/when-to-use-var-in-javascript