也许很简单的问题。
我应该在JavaScript中使用var
关键字。在我看来,使用它或不具有相同的效果(但我当然还在学习语言)
例如,这些对我来说似乎都是一样的:
(function(){
var a = "mundo"
alert("Hola, " + a )
})()
和
(function(){
a = "mundo"
alert("Hola, " + a )
})()
但当然必须有一个更复杂的例子,差异显示出来。
答案 0 :(得分:80)
使用var
时,您将在当前范围中实例化变量。这也将阻止在当前范围内访问更高范围内名为相同的变量。
在您的第一个示例中,'a'正在实例化并在函数范围内设置。在第二个示例中,由于缺少var
使用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。