使用逗号初始化/设置多个变量,无需"var"?



我见过很多这样的例子:

var foo = 1, bar = 2, baz = 3;

但是,如果没有var,我也可以这样做吗?例子:

// Declare at top of block for readability's sake:
var foo, bar, baz;
// ... stuff here ...
// Later in script, I finally get around to initializing above vars:
foo = 1, bar = 2, baz = 3; // Is using commas without var legal?

换句话说,在javascript中有一行我初始化/设置多个变量没有var关键字是合法的吗?我还没有找到任何明确的文档说明这是否被允许和/或得到很好的支持。

可以是:

foo = 1; bar = 2; baz = 3;

这是引发我的问题的真实情况:

for (var i = 0, l = haystack.length; i < l; i++) { ... }

…我想将for循环内的变量声明移动到父块的顶层,如:

var i, l;
// ... stuff here ...
for (i = 0, l = haystack.length; i < l; i++) { ... }

…但是我只在语句的开头使用var时才使用逗号。以上是合法的(?),还是应该是:

var i, l;
// ... stuff here ...
for (i = 0; l = haystack.length; i < l; i++) { ... }

(注意加了分号)

在javascript中,你可以用逗号分隔表达式,它们将从左到右执行,返回最右边表达式的值

一般来说你可以这样做,下面是合法的语法。

for (i = 0, l = haystack.length; i < l; i++) { ... }

查看更多关于逗号操作符的信息:MDN Docs

相关内容

最新更新