关于String+和Array.join对比的问题

关于String的连接,一般大家常识性概念是Array.join比String+高效,今天又看到这个问题的讲述。好奇就把测试代码跑了一下,发现并非完全如此,其实在Opera和FireFox下的测试结果并非如此,大多数时候反而是String+消耗的时间少,只有IE6下,的确是String+是jion()的三四倍,估计FF和Opera会自动优化代码。10000次String+有时候消耗的时间是0ms
测试代码:
function  CompareTime()
{
    
var d1=new Date();
    
var str="";
    
var i;
    
for(i=0;i<10000;i++)
    
{
        str
+="text";
    }

    
    
var d2=new Date();
    
//document.writeln(i+"<br/>");
    //document.writeln(d1.getTime()+"<br/>");
    //document.writeln(d2.getTime()+"<br/>");
    document.writeln("concatenation with plus:" +(d2.getTime()-d1.getTime())+"ms"+"<br/>");
    
    
var oArray=new Array;
    d1
=new Date();
    
for(i=0;i<10000;i++){
        oArray.push(
"text");
    }

    
var sResult=oArray.join("");
    d2
= new Date();
    
//document.writeln(i+"<br/>");
    //document.writeln(d1.getTime()+"<br/>");
    //document.writeln(d2.getTime()+"<br/>");
    document.writeln("oncatenation with Array:"+(d2.getTime()-d1.getTime())+"ms");
}


< body >
  
< script  language ="JavaScript" >
  CompareTime();
  
</ script >
 
</ body >

给出一组计算测试结果数据:
IE:
concatenation with plus:172ms
oncatenation with Array:47ms

Opera:
concatenation with plus:15ms
oncatenation with Array:32ms

FireFox:
concatenation with plus:16ms
oncatenation with Array:31ms 
相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 2

打赏作者

jaopen

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值