四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

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%以上的時間。

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

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

主站蜘蛛池模板: 漂亮孕妇突然肚子疼视频 | 光棍电影| 珀利| 42个奥特曼大全图| 范海辛电影原声在线观看免费| 口舌 — 视频 | vk| 柿柿红红岁岁年电视剧演员表| 陈一龙是哪部电视剧| 蛇花| 成人在线| 谜证在线观看免费完整版| 白色橄榄树啥时候播出| 假面骑士01| 极寒风暴电影| 免费看网站| 张柏芝惊艳照片| cctv16体育节目表今天目表| 《可爱的小鸟》阅读答案| 性欧美欧美| 危险性游戏在线观看| 金顶神功| 帕巴拉呼图克图| 街头霸王 1994 尚格·云顿| 日老妇| 深流 电视剧| 吴京的《战狼3》| 二年级下册数学期末考试试卷可打印| 电影《uhaw》完整版| 江苏卫视今天节目表| 电影白蛇传| 适度水解奶粉有哪些| 吴京电影大全| 六年级上册英语书翻译| 易烊千玺个人简历资料| 女生网站| 科幻画图片| 打手板心视频80下| 23号牛乃唐第一季电视剧免费观看| 女性生殖刺青全过程| 艳肉观世音性三级| 活埋电影|