在变量声明中使用var有什么好处?

时间:2012-01-15 10:40:21

标签: javascript

  

可能重复:
  Difference between using var and not using var in JavaScript

对于代码,我发现不需要使用var声明变量。以下都是工作

// with var
var object = new Object();

// without var
object = new Object();

这两者有什么区别?

4 个答案:

答案 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使变量本地变量