【发布时间】:2011-12-24 21:34:33
【问题描述】:
对于字符串,[x,y,z].join('') 真的比 x + y + z 快吗?
在 join() 更快的印象下,我开始通过我的代码来使用它而不是 +,然后我在 Google Analytics 代码中遇到了以下行:
ga.src = ('https:' === document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
假设 Google 编码员是知识最渊博的人之一,这让我感到奇怪。当然,该行在每次页面加载时只会运行一次,可以说任何速度差异都可以忽略不计。但还是?
【问题讨论】:
-
函数的速度由 JavaScript 实现决定,不同浏览器的实现不同。用于测试 - jsperf.com
-
这也是
[x,y].join('')。我相信可以节省更多的参数(因为您每次使用+进行一次调用,而 join 只是一个函数调用。) -
+Bakudan,发现了一个应该能有所启发的测试:jsperf.com/concat-vs-join2/4
标签: javascript performance concatenation