“var”在JavaScript中有什么作用?为什么它有时是作业的一部分?

时间:2011-11-09 01:55:18

标签: javascript

  

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

var foo = 1;

foo = 1;

上述两行之间有什么区别?

3 个答案:

答案 0 :(得分:18)

基本上,var 声明变量,您也可以同时分配它。

没有var,它会分配给变量。分配将分配给现有变量或创建该名称的全局变量,然后分配给它。

在函数之外,这意味着如果变量尚不存在,那么(原则上)没有真正的区别。在这种情况下,两者都创建全局变量foo

函数中,存在巨大差异。第一个创建函数的局部变量,无论它是否存在于其他地方。

第二个将创建一个全局变量(如果它不存在),或者只是更改该值(如果它存在)。

为了使代码尽可能保持模块化,除非您特别想要更改现有的全局变量,否则总是使用var。这意味着使用var声明函数外的所有全局变量并使用var声明所有本地变量。

答案 1 :(得分:5)

foo = 1会将foo放在定义foo的最后一个范围或全局范围内。 var foo = 1将变量放在当前范围内(即当前函数)。

答案 2 :(得分:1)

在第一种情况下,foo将在定义它的同一范围内可用,即它将是局部变量。 在第二种情况下,foo是一个全局变量,位于全局范围内。