将字符串分割以初始化JavaScript数组有哪些优点?

6
这种模式非常普遍;我在几个地方看到过它,包括jQuery源代码中:
var arr = "word1 word2 word3".split(" ");

作为数组初始化的“常规”方法的替代方案:

var arr1 = [ "word1", "word2", "word3" ];

var arr2 = new Array( "word1", "word2", "word3" );

使用字符串拆分方法的好处是什么?

抱歉如果这个问题已经被问过了,但我在任何“相关答案”中都找不到它。通过谷歌也很难找到 - 对我来说是这样... - Bobby Jack
仅仅因为jQuery使用了它,并不意味着这是最棒的方法。它仍然是由个人贡献的,所有代码在提交之前并不会被精英专家审核... - jishi
2个回答

3
第一个更短。在现今的 JS 库中,这是个问题。同时,它更容易书写:少输入 ,'。也更不容易打错。

好观点。但是,[ ... ] 不是更快吗?我认为这也是库设计中的一个因素。不可否认,节省的空间只有4个字节,在我看来并不算多。 - Bobby Jack
如果只有几个元素,那么优势很小(或反而是劣势)。在JS压缩器中,列表通常包含50个以上的元素。获得的速度在下载方面,而不是在evalling脚本使其有用方面(别问我为什么,我也不太明白)。我认为很多人认为LS库越小越好。(顺便说一下,我认为你是对的:[...]更快) - Rudie
还有可能有更多的优点...也许它实际上更快(??)或者更少出错(??)。 - Rudie

3

来自jQuery的创建者John Resig:

“我唯一看到的好处就是源代码中字符计数和一个字符串而不是众多的字符串。” Bingo!

现在我想起来了,我觉得Closure可能会优化这个点(我认为YUIMin没有)。我可以再次检查一下。

Google JavaScript风格指南建议避免使用new Array(),因为“由于其参数,数组构造函数容易出错”。该指南有更详细的解释。


非常好 - 感谢您找到参考资料。 - Bobby Jack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接