使用相同的var关键字初始化多个javascript变量有什么好处?

Leo*_*opd 16 javascript

当我阅读那些很清楚并且由显然非常擅长的人编写的javascript代码时,我经常会看到这种模式

var x = some.initialization.method(),
    y = something.els(),
    z;
Run Code Online (Sandbox Code Playgroud)

这比写作有什么好处

var x = some.initialization.method();
var y = something.els();
var z;
Run Code Online (Sandbox Code Playgroud)

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

Ceb*_*yre 9

发送到浏览器的javascript大小略有优势; Google的Closure编译器在'仅空白'模式下将单个var版本编译为:

var x=some.initialization.method(),y=something.els(),z;
Run Code Online (Sandbox Code Playgroud)

和多个:

var x=some.initialization.method();var y=something.els();var z;
Run Code Online (Sandbox Code Playgroud)

我把你改成elseels以便编译.

这不是一个巨大的收获(特别是如果你也在压缩文件),并且'简单'编译模式无论如何都会为你做这个,所以我可能不会太在意它,除非你能找到更有说服力的理由.

你可能的一个原因希望这样做的是,如果你不小心使用分号,而不是逗号的你刚刚发现了一个全球性的.

  • +1,这是IMO我答案的更好的版本.关于使用分号而不是逗号的最后一点,正是我们的团队停止使用逗号的原因 - 太多的全局变量以这种方式被引入. (5认同)