2012-01-15 108 views
2

可能重复:
Why don't self-closing script tags work?
Difference between using var and not using var in JavaScript在变量声明中使用var有什么好处?

的代码,我发现它是没有必要使用VAR到声明变量。以下都是工作

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

// without var 
object = new Object(); 

这两者有什么区别?

+3

看看这里http://stackoverflow.com/questions/1470488/difference-between-using-var-and-not-using -var-in-javascript – Daniel 2012-01-15 10:42:20

+0

这与Daniel指出的完全相同。 – hop 2012-01-15 10:49:32

回答

4

关键的区别在于,如果您不使用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关键字的变量的作用域。

2

使用var,使局部变量的函数,如果你在宽阔的JavaScript中使用VAR任何功能之外

3

并不重要,因为

var a 

它与同

window.a 

但功能内

var a是一个私人变量的功能,而指向window.a(全球)

相关问题