关于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 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值