javascript中字符串拼接需注意的問題
更新時(shí)間:2010年07月13日 00:35:19 作者:
作為一名.net開發(fā)人員相信大家都知道C#中字符串拼接與StringBuilder的效率差距。
在開發(fā)中大家也都會(huì)注意盡量使用StringBuilder而不采用普通的字符串拼接方式。但是可能大部分開發(fā)者卻忽略了js中也需要注意這種效率問題。
下面進(jìn)行一項(xiàng)性能測試,用事實(shí)來說話!
function xntest(){
var d1=new Date();
var str="";
for(var i=0;i<10000;i++){
str+="stext";
}
var d2=new Date();
document.write("字符串拼接方式耗時(shí):"+(d2.getTime()- d1.getTime())+"毫秒;");
d1=new Date();
var sb=new StringBuilder();
for(var i=0;i<10000;i++){
sb.append("stext");
}
var result=sb.toString();
d2=new Date();
document.write("數(shù)組方式耗時(shí):"+(d2.getTime()- d1.getTime())+"毫秒;");
}
/////利用Array實(shí)現(xiàn)的字符串拼接函數(shù),為方便c#開發(fā)者特意取名StringBuilde以便于理解
function StringBuilder(){
this._strings_=new Array;
}
StringBuilder.prototype.append=function(str){
this._strings_.push(str);
};
StringBuilder.prototype.toString=function(){
return this._strings_.join("");
};
三次執(zhí)行 xntest()函數(shù)后的結(jié)果為:
字符串拼接方式耗時(shí):735毫秒;數(shù)組方式耗時(shí):62毫秒;
字符串拼接方式耗時(shí):766毫秒;數(shù)組方式耗時(shí):63毫秒;
字符串拼接方式耗時(shí):703毫秒;數(shù)組方式耗時(shí):63毫秒;
此例是拼接10000次字符串的性能測試,相信結(jié)果大家有目共睹,有興趣的朋友可以自己測試一下。
所以 ,在前臺開發(fā)中我們也應(yīng)盡量避免大規(guī)模的字符串拼接操作,應(yīng)采用數(shù)組方式來合理提高代碼效率。
下面進(jìn)行一項(xiàng)性能測試,用事實(shí)來說話!
復(fù)制代碼 代碼如下:
function xntest(){
var d1=new Date();
var str="";
for(var i=0;i<10000;i++){
str+="stext";
}
var d2=new Date();
document.write("字符串拼接方式耗時(shí):"+(d2.getTime()- d1.getTime())+"毫秒;");
d1=new Date();
var sb=new StringBuilder();
for(var i=0;i<10000;i++){
sb.append("stext");
}
var result=sb.toString();
d2=new Date();
document.write("數(shù)組方式耗時(shí):"+(d2.getTime()- d1.getTime())+"毫秒;");
}
/////利用Array實(shí)現(xiàn)的字符串拼接函數(shù),為方便c#開發(fā)者特意取名StringBuilde以便于理解
function StringBuilder(){
this._strings_=new Array;
}
StringBuilder.prototype.append=function(str){
this._strings_.push(str);
};
StringBuilder.prototype.toString=function(){
return this._strings_.join("");
};
三次執(zhí)行 xntest()函數(shù)后的結(jié)果為:
字符串拼接方式耗時(shí):735毫秒;數(shù)組方式耗時(shí):62毫秒;
字符串拼接方式耗時(shí):766毫秒;數(shù)組方式耗時(shí):63毫秒;
字符串拼接方式耗時(shí):703毫秒;數(shù)組方式耗時(shí):63毫秒;
此例是拼接10000次字符串的性能測試,相信結(jié)果大家有目共睹,有興趣的朋友可以自己測試一下。
所以 ,在前臺開發(fā)中我們也應(yīng)盡量避免大規(guī)模的字符串拼接操作,應(yīng)采用數(shù)組方式來合理提高代碼效率。
相關(guān)文章
BootStrap創(chuàng)建響應(yīng)式導(dǎo)航條實(shí)例代碼
這篇文章主要介紹了BootStrap創(chuàng)建響應(yīng)式導(dǎo)航條實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-05-05
Bootstrap實(shí)現(xiàn)默認(rèn)導(dǎo)航欄效果
這篇文章主要介紹了Bootstrap實(shí)現(xiàn)默認(rèn)導(dǎo)航欄效果,導(dǎo)航欄是一個(gè)很好的功能,是Bootstrap網(wǎng)站的一個(gè)突出特點(diǎn),本文帶領(lǐng)大家學(xué)習(xí)實(shí)現(xiàn)Bootstrap導(dǎo)航欄,需要的朋友可以參考下
2015-12-12
JavaScript實(shí)現(xiàn)網(wǎng)頁留言板功能
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)網(wǎng)頁留言板功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
2020-11-11
微信小程序動(dòng)態(tài)添加和刪除組件的現(xiàn)實(shí)
這篇文章主要介紹了微信小程序動(dòng)態(tài)添加和刪除組件的現(xiàn)實(shí),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
2020-02-02
JavaScript 5 新增 Array 方法實(shí)現(xiàn)介紹
JavaScript 5 發(fā)布有一段時(shí)間了,Array 對象新增了很多方法。但在老版本的瀏覽器上還不能使用,得益于 JavaScript 的動(dòng)態(tài)可擴(kuò)展性,我實(shí)現(xiàn)了這些方法,在此曬出來與君共勉
2012-02-02 
