一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

JavaScript 字符串連接性能優(yōu)化

復(fù)制代碼 代碼如下:
var str = "hello";
str += " world";

后臺所做工作:
1)創(chuàng)建存儲 "hello" 的字符串,且使 str 指向它。
2)創(chuàng)建存儲 "world" 的字符串。
3)創(chuàng)建存儲結(jié)果的字符串。
4)將 str 中的當(dāng)前內(nèi)容復(fù)制到結(jié)果字符串中。
5)把 world 復(fù)制到結(jié)果字符串中。
6)更新 str ,使 str 指向結(jié)果字符串。
每拼接一次字符串就循環(huán)重復(fù)2)~6),如果重復(fù)成百上千次則會非常消耗資源,影響性能。
解決方法:
使用 Array 對象存儲字符串,之后使用 join()方法輸出結(jié)果。
仿照 Java 中的 StringBuffer 類。
復(fù)制代碼 代碼如下:
function StringBuffer(){
this._strings = new Array;
}
StringBuffer.prototype.append = function (str){
this._strings.push(str);
}
StringBuffer.prototype.toString = function (){
return this._strings.join("");
}

測試性能:
代碼1:使用 "+=" 拼接字符串
復(fù)制代碼 代碼如下:
var d = new Date();
var str = "";
for(var i=0;i<10000;i++){
str += "test";
}
var d2 = new Date();
document.writeln(d2.getTime()-d.getTime());

代碼2:使用 StringBuffer
復(fù)制代碼 代碼如下:
var d = new Date();
var str = new StringBuffer();
for(var i=0;i<10000;i++){
str.append("test");
}
var res = str.toString();
var d2 = new Date();
document.writeln(d2.getTime()-d.getTime());

從多次測試結(jié)果看來,使用StringBuffer 可以節(jié)省50%以上的時(shí)間。

JavaScript技術(shù)JavaScript 字符串連接性能優(yōu)化,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美一级特黄aaa大片 | 丁香婷婷激情 | 四虎影视在线永久免费观看 | 狠狠涩| 国产69久久精品成人看 | 一区二区手机视频 | 国产精品视频观看 | 97国产精品视频 | www.欧美视频 | 悠悠色综合 | 亚洲欧美一区二区三区麻豆 | 日韩欧美亚洲国产精品字幕久久久 | 日本aⅴ日本高清视频影片www | 亚洲图片欧美激情 | 一区二区在线免费视频 | 久草社区| 91久久国产情侣真实对白 | 在线精品国产成人综合第一页 | 最新亚洲国产有精品 | 婷婷久久综合九色综合绿巨人 | 色婷婷综合久久久中文字幕 | 欧美日本一二三区 | 中文字幕一区2区 | 欧美精品黄页在线观看视频 | 亚洲美女一区 | 精品在线一区 | 国产级a爱做片免费观看 | 欧美三级视频 | 久久综合久久久 | 男人进去女人爽免费视频国产 | 亚洲综合区图片小说区 | 国产欧美一区二区三区免费看 | 国产成人精品一区二区三在线观看 | 都市激情中文字幕 | 加勒比一区| 丁香婷婷六月 | 国产福利91精品一区二区 | 久久青草免费97线频观 | 国产91嫩草精品 | 国产精品第六页 | 亚洲激情黄色小说 |