我见过许多例子:
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
关键字的情况下初始化/设置多个vars的行合法吗?我未能找到任何关于这是否被允许和/或是否得到充分支持的明确文件。
另一种选择是:
foo = 1; bar = 2; baz = 3;
下面是我提出问题的真实世界的情况:
for (var i = 0, l = haystack.length; i < l; i++) { ... }
..。我希望将for
循环中的varible delcaration移到父块的顶层,例如:
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++) { ... }
(请注意添加的分号。)
发布于 2013-03-12 12:01:03
在javascript中,您可以用逗号分隔表达式,它们将从左到右执行,返回极右表达式的值。
所以,是的,一般情况下你可以这样做,下面是法律语法。
for (i = 0, l = haystack.length; i < l; i++) { ... }
请参阅有关逗号运算符的更多信息:MDN文档
https://stackoverflow.com/questions/15370968
复制