javascript 的字串串連 join更優嗎?

來源:互聯網
上載者:User

這個是無意中從網上看到了,打破了原來的想法,所以再帖一下,

 

 

<mce:script type="text/javascript"><!--<br />function StringBuffer() {<br />this._strs = new Array;<br />}<br />StringBuffer.prototype.append = function (str) {<br />this._strs.push(str);<br />};<br />StringBuffer.prototype.toString = function() {<br />this._strs.join("");<br />}; </p><p>var len = 30000;<br />var str = "textttttttt";<br />var tStart = new Date();<br />var str = "";<br />for(var i=0;i<len;i++)<br />{<br />str += str;<br />}<br />var tEnd = new Date();<br />document.write("<BR/>原始的方法加號 拼接"+len +"個字串花費時間 :"+(tEnd.getTime()-tStart.getTime())+" mS"); </p><p>var oSB = new StringBuffer();<br />tStart = new Date();<br />for(var i=0;i<len;i++)<br />{<br />oSB.append(str);<br />}<br />var sRst = oSB.toString();<br />tEnd = new Date();<br />document.write("<br/>StringBuffer 拼接"+len +"個字串 花費時間:"+(tEnd.getTime()-tStart.getTime())+" ms"); </p><p> tStart = new Date();<br />var strArr = new Array;<br />for(var i=0;i<len;i++)<br />{<br /> strArr[i] = str ;<br />}<br />strArr.join("");<br /> tEnd = new Date();<br />document.write("<BR/>數組join"+len +"個字串 花費時間 :"+(tEnd.getTime()-tStart.getTime())+" mS");<br />// --></mce:script>

 

比較   

ie6

原始的方法加號 拼接30000個字串花費時間 :31 mS
StringBuffer 拼接30000個字串 花費時間:172 ms
數組join30000個字串 花費時間 :47 mS

 

ie7

原始的方法加號 拼接30000個字串花費時間 :53 mS
StringBuffer 拼接30000個字串 花費時間:337 ms
數組join30000個字串 花費時間 :104 mS

ff 3.5.6

方法加號 拼接30000個字串花費時間 :1 mS
StringBuffer 拼接30000個字串 花費時間:9 ms
數組join30000個字串 花費時間 :6 mS

opera 10.0
原始的方法加號 拼接30000個字串花費時間 :21 mS
StringBuffer 拼接30000個字串 花費時間:460 ms
數組join30000個字串 花費時間 :36 mS

chrome 1.0

原始的方法加號 拼接30000個字串花費時間 :4 mS
StringBuffer 拼接30000個字串 花費時間:7 ms
數組join30000個字串 花費時間 :12 mS

=========
var len = 3000000; 時

ie6

ie7  沒反應,就是沒有顯示

ff 3.5.6
方法加號 拼接3000000個字串花費時間 :57 mS
StringBuffer 拼接3000000個字串 花費時間:878 ms
數組join3000000個字串 花費時間 :742 mS

opera 10.0
原始的方法加號 拼接3000000個字串花費時間 :7130 mS
StringBuffer 拼接3000000個字串 花費時間:23813 ms
數組join3000000個字串 花費時間 :18742 mS

chrome 1.0

原始的方法加號 拼接3000000個字串花費時間 :57 mS
StringBuffer 拼接3000000個字串 花費時間:878 ms
數組join3000000個字串 花費時間 :742 mS

 

總結,  join 並不一定要比原始的 +快, chrome我只是用 portable 版本的,一直沒更新,不過新版本的應該也差不多.

 

 

說明: 除了 ie6在xp sp3外,其它的都是在 vista上的結果,還有解說文字沒有改.....

參考  http://kacakong.javaeye.com/blog/378858

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.