在变量声明中使用var有什么好处?
可能重复:
为什么不能自动关闭脚本标签?
JavaScript中使用var和不使用var之间的区别
对于代码,我发现它不需要使用var声明变量。 以下都是工作
// with var
var object = new Object();
// without var
object = new Object();
这两者有什么区别?
关键的区别在于,如果你不使用var
关键字,那么即使你在一些嵌套函数中定义它,你的变量也是全局的。
var
为该变量定义一个范围。 如果您希望跨多个范围使用您的对象,使用全局或不使用全局变量,但强烈建议使用全局变量来减少全局范围污染的命名空间。
如果你在广泛的javascript中使用var以外的任何函数并不重要,因为
var a
这与之相同
window.a
但在一个函数里面
var a
是函数的私有变量,而指向window.a
(全局)
如果您不使用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
关键字指定变量的范围。
上一篇: What's advantage to use var in the variable declaration?