javascript 高效拼字串

來源:互聯網
上載者:User

javascript 高效拼字串

 

就像在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.