javascript類比C# Stringbuilder

來源:互聯網
上載者:User

就像在c#中一樣,我們可以使用”+”來拼接字串,而對於操作頻繁、講究效率的字串拼接操作我們應該選擇stringbuilder類。在javascript中是否也存在這個問題呢?答案是肯定的,雖然javascript並沒有為我們提供一個內建的stringbuilder對象,但是我們可以自己來建立一個!至於效率到底能提高多少,讓程式說話吧!

//---stringbuilder---function stringbuilder(){this.__string__ = new array();}stringbuilder.prototype.append = function(str){this.__string__.push(str);}stringbuilder.prototype.tostring = function(){return this.__string__.join("");} var d1 = new date();var buffer = new stringbuilder();for(var i = 1; i < 10000; i++){buffer.append("e3card");}var strresult = buffer.tostring();var d2 = new date(); document.write("stringbuilder用時:" + (d2.gettime() - d1.gettime()) + "<br/>"); //---+-----var d3 = new date();var str = "";for(var i = 1; i < 10000; i++){str += "e3card";}var d4 = new date();document.write("+連結用時:" + (d4.gettime() - d3.gettime()) + "<br/>");

在我的機器上(core2 3.0g/4gram),反覆f5後得到一個,比較平穩的測試結果:

stringbuilder用時:32
+連結用時:1109

哇哦,30多倍,我沒看錯吧!

好了,趕快自己做好一個lib,以後都用這個stringbuilder吧:

function stringbuilder(){this.__string__ = new array();}stringbuilder.prototype.append = function(str){this.__string__.push(str);}stringbuilder.prototype.tostring = function(){return this.__string__.join("");}

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.