网上的文章,有的说字符串相加快,有的说用Array.join做一个模拟的StringBuffer快,还是实际写个实例试试把
function CompareTime(){ var d1=new Date(); var str=""; var i; for(i=0;i<1000000;i++) { str+="text"; } var d2=new Date(); document.writeln("concatenation with plus:" +(d2.getTime()-d1.getTime())+"ms"+"<br/>"); var oArray=new Array; d1=new Date(); for(i=0;i<1000000;i++){ oArray.push("text"); } var sResult=oArray.join(""); d2= new Date(); document.writeln("oncatenation with Array:"+(d2.getTime()-d1.getTime())+"ms"); }
1万次循环执行结果:
FireFox3
concatenation with plus:6ms
oncatenation with Array:7ms
oncatenation with Array:7ms
Chrome
concatenation with plus:1ms
oncatenation with Array:3ms
oncatenation with Array:3ms
IE6 写道
concatenation with plus:171ms
oncatenation with Array:32ms
oncatenation with Array:32ms
100万次循环执行结果
FireFox3
concatenation with plus:454ms
oncatenation with Array:521ms
oncatenation with Array:521ms
Chrome
concatenation with plus:483ms
oncatenation with Array:543ms
oncatenation with Array:543ms
IE6 写道
浏览器无响应,根本出不了结果
结果:在FireFox和 Chrome 浏览器中,字符串相加速度更快,在IE6中,则是Array.join更快,不过总的来说IE6的解析性能真是太差了,在循环达到10万次以上时,就开始 无响应了。BS一下。 没有测试过IE7,IE8, 有兴趣的可以测试一下把结果告知。