【发布时间】:2016-11-21 19:40:21
【问题描述】:
我想知道以下连接两个字符串str1='a' 和str2='b' 的语句在性能上是否存在差异
str1 = str1 + str2;
或
str1 += str2;
或
var res = str1.concat(str2);
我尝试了以下方法来衡量性能,但对于同一语句,从一次执行到另一次执行的输出似乎有很大差异。
var str1='a', str2='b';
var old_time=new Date();
for (var i=0; i<=1000000 ; i++){
str1=str1+str2; // change this one with the other statements
}
var new_time=new Date();
console.log(new_time - old_time);
【问题讨论】:
-
你创建了jsperf吗?
-
不,我不知道这个工具的存在
-
在不同的 JS 引擎上性能可能会有所不同。您应该首先评估您是否确实遇到了性能很重要的情况,如果确实如此,您应该使用 jsperf 之类的东西(如@Aᴍɪʀ 提到的)进行系统测试。
-
这种微优化很少值得操心。你最好使用最清晰的实现。在这种情况下,我会选择版本 1 或 2。请参阅 softwareengineering.stackexchange.com/questions/99445/…
标签: javascript performance concatenation