使用相同的var关键字初始化多个JavaScript变量有什么优势?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (47)

当我阅读干净的JavaScript代码,并且显然非常擅长写这些代码时,我经常会看到这种模式

var x = some.initialization.method(),
    y = something.els(),
    z;

那比写作有什么好处

var x = some.initialization.method();
var y = something.els();
var z;

第二种格式更容易维护,因为每一行都存在。所以你可以删除一行或添加一行,而不必四处查看它是否是要初始化的第一个或最后一个变量。这也意味着源代码控制差异/合并会更好。鉴于这些缺点,我猜测第一种格式有一些优势 - 但它是什么?当然,它们执行的方式相同,因为它与解析器相同。

提问于
用户回答回答于

发送给浏览器的JavaScript的大小有一点小小的优势,谷歌的Closure编译器的“空白只有”模式将编译一个变种版本为:

var x=some.initialization.method(),y=something.els(),z;

和多为:

var x=some.initialization.method();var y=something.els();var z;

我改变了你的选择elseels以便编译。

这不是一个巨大的收益(尤其是如果你也在压缩文件),而且'简单'编译模式将为你做到这一点,所以我可能不会太在意它,除非你能找到更多令人信服的理由。

你可能希望这样做的一个原因是,如果你不小心使用了分号而不是逗号,那么你刚刚发现了一个全局变量。

用户回答回答于

我无法在一个声明中看到所有变量,因为变量声明可能离实际使用的地方很远。我知道它的所有论点,而变量提升将所有变量移动到函数的顶部。但是当我看到一个在函数顶部声明的变量,并且它没有被用于另外20行时,它让我感到非常疯狂,特别是对于循环索引变量

扫码关注云+社区