在JavaScript中,可以像这样声明多个变量:

var variable1 = "Hello, World!";
var variable2 = "Testing...";
var variable3 = 42;

...或者像这样:

var variable1 = "Hello, World!",
    variable2 = "Testing...",
    variable3 = 42;

一种方法比另一种更好/更快吗?


当前回答

我唯一的,也是最重要的,逗号的用法是在for循环中:

for (var i = 0, n = a.length; i < n; i++) {
  var e = a[i];
  console.log(e);
}

我在JavaScript中查看了一下这个是否可以。

即使它是可行的,一个问题仍然是n是否对函数是局部的。

这验证了n是本地的:

a = [3, 5, 7, 11];
(function l () { for (var i = 0, n = a.length; i < n; i++) {
  var e = a[i];
  console.log(e);
}}) ();
console.log(typeof n == "undefined" ?
  "as expected, n was local" : "oops, n was global");

在语言之间切换,我一时拿不准。

其他回答

ECMAScript 2015引入了解构赋值,效果非常好:

[a, b] = [1, 2]

A等于1 b等于2。

这样做的时候可读性更强:

var hey = 23;
var hi = 3;
var howdy 4;

但是这种方法占用的空间和代码行数更少:

var hey=23,hi=3,howdy=4;

它是节省空间的理想选择,但是让JavaScript压缩器为您处理它。

对于组织来说,每个作用域使用一个var语句是很常见的。所有“作用域”都遵循类似的模式,使代码更具可读性。此外,引擎会把它们都“吊”到顶部。因此,将声明放在一起可以更紧密地模拟实际发生的情况。

这只是个人喜好的问题。这两种方式之间没有区别,只是如果去掉空白,第二种形式节省了一些字节。

第二种方法的主要问题是,到目前为止还没有IDE支持这种风格。 你不能折叠这些结构。