Javascript 使用逗号初始化/设置多个变量,不带“;var";?
我见过很多这样的例子:Javascript 使用逗号初始化/设置多个变量,不带“;var";?,javascript,Javascript,我见过很多这样的例子: 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
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++) { ... }
。。。但我只在语句开头使用var
时才使用逗号。上述内容是否合法(?),或者是否应该:
var i, l;
// ... stuff here ...
for (i = 0; l = haystack.length; i < l; i++) { ... }
var i,l;
// ... 这里的东西。。。
对于(i=0;l=haystack.length;i
(注意添加的分号。)在javascript中,可以用逗号分隔表达式,它们将从左到右执行,返回最右表达式的值 是的,一般来说你可以这样做,下面是法律语法
for (i = 0, l = haystack.length; i < l; i++) { ... }
for(i=0,l=haystack.length;i
有关逗号运算符的更多信息,请参见此处:在javascript中,可以用逗号分隔表达式,它们将从左向右执行,返回最右表达式的值 是的,一般来说你可以这样做,下面是法律语法
for (i = 0, l = haystack.length; i < l; i++) { ... }
for(i=0,l=haystack.length;i
有关逗号运算符的更多信息,请参见此处:谢谢Ben!在
i=0
之后的for
循环中使用分号(而不是逗号)会有什么问题吗?您通常使用逗号来设置多个变量(当不使用var
关键字时),还是更喜欢分号?我认为这在for循环中不起作用。您可以在这里看到这些循环的规格:看起来您只能有3条语句。添加额外的语法是无效的。啊,回答我自己的问题,在for
循环的上下文中:for([initialization];[condition];[final expression])
似乎更喜欢逗号。也找到了via。我想知道这一点也很好:“[初始化]表达式的结果被丢弃”。谢谢Ben!在i=0
之后的for
循环中使用分号(而不是逗号)会有什么问题吗?您通常使用逗号来设置多个变量(当不使用var
关键字时),还是更喜欢分号?我认为这在for循环中不起作用。您可以在这里看到这些循环的规格:看起来您只能有3条语句。添加额外的语法是无效的。啊,回答我自己的问题,在for
循环的上下文中:for([initialization];[condition];[final expression])
似乎更喜欢逗号。也找到了via。我认为知道这一点也很好:“[初始化]表达式的结果被丢弃”。