今天,对javascript中拼接字符串的两种方法做了个效率对比。第一种是 += 的方法,第二种 是join 。
代码实现如下:
第一种 +=
<script type="text/javascript">
d1=new Date();
var arr = [];
for (var i = 0; i < 10000000; i++) {
arr.push(i);
};
var str = '';
for (var i = 0; i < 10; i++) {
str += i;
};
d2=new Date();
var t=d2.getTime()-d1.getTime();
console.log(t);
</script>
第二种 join
<script type="text/javascript">
d1=new Date();
var arr = [];
for (var i = 0; i < 10000000; i++) {
arr.push(i);
};
//console.log(arr);
var str = '';
str=arr.join("");
d2=new Date();
var t=d2.getTime()-d1.getTime();
console.log(t);
</script>
我在IE8和chome版本 56.0.2924.87分别对1w,10w,100w,1000w数据量,测试他们的执行之间:
IE | chome | |||
| += | join | += | join |
10,000 | 5 | 7 | 0-1 | 1-2 |
100,000 | 55 | 70 | 5 | 20-25 |
1000,000 | 545 | 717 | 24 | 180-200 |
10000,000 | 12432 | 内存溢出 | 193 | 2248 |
根据以上的结果,不难得出结论。