3

我突然想到,我不知道范围是什么

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

是。

显然 foo 是本地范围的,但是 baz 上的 var 关键字是否必须在本地范围内,或者我的示例已经在本地范围内?

4

2 回答 2

4

它们最终都将在同一范围内。

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

简称:

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

因此,例如在一个函数中,即使您只声明一次,两者foo和都将成为局部变量。bazvar

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

于 2012-07-17T18:26:29.487 回答
1

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

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

使长话短说,

  • 未声明的变量是全局的
  • 声明的变量是local,它允许“覆盖”全局变量。
于 2012-07-17T18:34:58.233 回答