天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

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

后臺(tái)所做工作:
1)創(chuàng)建存儲(chǔ) "hello" 的字符串,且使 str 指向它。
2)創(chuàng)建存儲(chǔ) "world" 的字符串。
3)創(chuàng)建存儲(chǔ)結(jié)果的字符串。
4)將 str 中的當(dāng)前內(nèi)容復(fù)制到結(jié)果字符串中。
5)把 world 復(fù)制到結(jié)果字符串中。
6)更新 str ,使 str 指向結(jié)果字符串。
每拼接一次字符串就循環(huán)重復(fù)2)~6),如果重復(fù)成百上千次則會(huì)非常消耗資源,影響性能。
解決方法:
使用 Array 對(duì)象存儲(chǔ)字符串,之后使用 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)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 果冻传媒在线观看网站 | 艳照门在线播放 | 99久久精品免费精品国产 | 免费精品国产人妻国语麻豆 | 精选国产AV精选一区二区三区 | 一区两区三不卡 | 亚洲国产成人一区二区在线 | 久久亚洲伊人中字综合精品 | 亚洲、国产综合视频 | 日本后进式猛烈xx00动态图 | 妈妈的职业3完整版在线播放 | 成人小视频免费在线观看 | 国产免费福利在线视频 | 国产在线午夜 | 在线中文字幕视频 | 三级黄色在线视频中文 | 午夜福利免费视频921000电影 | 亚洲精品无码久久久久A片 亚洲精品无码国产爽快A片百度 | 中文字幕不卡在线视频 | SM调教贱屁股眼哭叫求饶H | 亚洲欧美一区二区成人片 | 99久久做夜夜爱天天做精品 | 伦理片秋霞免费影院 | 国产麻豆福利AV在线观看 | 国产精品久久久久久久久爆乳 | 2021年国产精品久久 | 99久久蜜臀AV免费看蛮 | 欧美一级久久久久久久久大 | 色精品极品国产在线视频 | 毛片在线网址 | 十分钟在线观看免费视频高清WWW | 日韩欧美成人免费中文字幕 | 亚洲蜜芽在线观看精品一区 | 麻豆COMCN| 同桌上课把奶露出来给我玩 | 国产睡熟迷奷系列精品 | 黑兽在线观看高清在线播放樱花 | 日本高清无人区影院 | 一本之道高清在线观看一区 | 亚洲一卡二卡三卡四卡无卡麻豆 | 成年人视频在线免费播放 |