在变量声明中使用 var 有啥好处? [复制]
Posted
技术标签:
【中文标题】在变量声明中使用 var 有啥好处? [复制]【英文标题】:What's advantage to use var in the variable declaration? [duplicate]在变量声明中使用 var 有什么好处? [复制] 【发布时间】:2012-02-10 17:57:45 【问题描述】:可能重复:Difference between using var and not using var in javascript
对于代码,我发现不需要使用 var 来声明变量。以下都有效
// with var
var object = new Object();
// without var
object = new Object();
这两者有什么区别?
【问题讨论】:
看这里***.com/questions/1470488/… 这是丹尼尔指出的完全相同的副本。 【参考方案1】:关键的区别是如果你不使用var
关键字,你的变量将是全局的,即使你在一些嵌套函数中定义了它。
var
定义了该变量的范围。是否使用全局变量取决于您是否要跨多个作用域使用您的对象,但强烈建议不要使用全局变量以支持减少全局作用域污染的命名空间。
【讨论】:
【参考方案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】:使用var
使变量成为函数的局部变量
【讨论】:
【参考方案4】:如果你在任何函数之外的宽泛的 javascript 中使用 var 并不重要,因为
var a
跟
是一样的window.a
但在函数内部
var a
是函数的私有变量,而a指向window.a
(全局)
【讨论】:
以上是关于在变量声明中使用 var 有啥好处? [复制]的主要内容,如果未能解决你的问题,请参考以下文章