在開發中大家也都會注意盡量使用StringBuilder而不采用普通的字符串拼接方式。但是可能大部分開發者卻忽略了js中也需要注意這種效率問題。
下面進行一項性能測試,用事實來說話!
復制代碼 代碼如下:
function xntest(){
var d1=new Date();
var str="";
for(var i=0;i<10000;i++){
str+="stext";
}
var d2=new Date();
document.write("字符串拼接方式耗時:"+(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("數組方式耗時:"+(d2.getTime()- d1.getTime())+"毫秒;");
}
/////利用Array實現的字符串拼接函數,為方便c#開發者特意取名StringBuilde以便於理解
function StringBuilder(){
this._strings_=new Array;
}
StringBuilder.prototype.append=function(str){
this._strings_.push(str);
};
StringBuilder.prototype.toString=function(){
return this._strings_.join("");
};
三次執行 xntest()函數後的結果為:
字符串拼接方式耗時:735毫秒;數組方式耗時:62毫秒;
字符串拼接方式耗時:766毫秒;數組方式耗時:63毫秒;
字符串拼接方式耗時:703毫秒;數組方式耗時:63毫秒;
此例是拼接10000次字符串的性能測試,相信結果大家有目共睹,有興趣的朋友可以自己測試一下。
所以 ,在前台開發中我們也應盡量避免大規模的字符串拼接操作,應采用數組方式來合理提高代碼效率。