可能重复:
Difference between using var and not using var in JavaScript
对于代码,我发现不需要使用var声明变量。以下都是工作
// with var
var object = new Object();
// without var
object = new Object();
这两者有什么区别?
答案 0 :(得分:5)
关键区别在于,如果不使用var
关键字,即使您在某个嵌套函数中定义了变量,您的变量也将是全局变量。
var
定义该变量的范围。使用全局或不使用全局取决于是否要在多个范围内使用对象,但强烈建议不要使用全局变量来支持减少全局范围污染的命名空间。
答案 1 :(得分:3)
如果你在任何函数之外的宽javascript中使用var并不重要,因为
var a
与
相同window.a
但在函数内
var a
是函数的私有变量,而指向window.a
(全局)
答案 2 :(得分:2)
如果您不使用var
关键字,则表示您正在声明全局变量。如果您使用它,则在当前范围内声明变量。
例如:
function foo() {
o = new Object();
}
foo();
alert(o); // you can access the o variable here
这非常糟糕,因为你基本上污染了全球范围。
相反:
function foo() {
// the o variable is accessible only inside the current scope which
// is the foo function
var o = new Object();
}
foo();
alert(o); // error => o is not accessible here
结论:始终使用var
关键字指定变量的范围。
答案 3 :(得分:2)
使用var
使变量本地变量