逗号分隔变量的范围

时间:2012-07-17 18:25:01

标签: javascript

我想到,我不知道

的范围是什么
var foo='bar', 
baz = 'bar';

显然foo是本地范围的,但是baz在本地范围内是必需的var关键字,还是我的示例已经在本地作用域?

2 个答案:

答案 0 :(得分:4)

他们最终都会在同一范围内。

var foo = 'bar', 
    baz = 'bar';

只是简称:

var foo = 'bar'; 
var baz = 'bar';

因此,在函数中,foobaz都将成为局部变量,即使您只声明var一次。

JSLint这样的工具实际上希望var关键字只能使用一次,所以如果你想遵守这个,你应该使用第一个例子。

答案 1 :(得分:1)

这确实是一个非常有趣的问题。 JavaScript充满了边界情况。

在这篇博文中:http://scribu.net/blog/javascript-var-keyword-for-php-developers.html,作者给出了使用或不使用'var'关键字的影响的一些例子。

长话短说,

  • 未声明的变量是全球
  • 声明的变量是 local ,它允许“覆盖”全局变量。