中文字幕日韩一区二区_国产一区二区av_国产毛片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("");
}

測(cè)試性能:
代碼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());

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

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

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

主站蜘蛛池模板: 国产福利在线小视频 | 亚洲成人动漫在线观看 | 精品一区二区三区在线观看国产 | 欧美日韩久久 | 国产伦精品 | 欧美一区二区三 | 观看av | 国产精品久久久久久久7777 | 中国91av| 国产片淫级awww | 在线国产一区二区 | 情侣酒店偷拍一区二区在线播放 | 综合久久综合久久 | 国产探花在线精品一区二区 | 亚洲免费一区 | 久久精品国产一区老色匹 | 天天草天天爱 | 伊人网在线看 | 精品久久久久久久久久久久久久久久久 | h视频免费观看 | 成人福利在线观看 | 天天干天天操天天看 | 亚洲精品电影网在线观看 | 国产婷婷 | 国产精品久久久爽爽爽麻豆色哟哟 | 久久精品视频在线观看 | 精品国产一区久久 | 欧美jizzhd精品欧美巨大免费 | 久久亚洲国产 | 午夜亚洲 | 国产精品一区二区在线播放 | 欧美xxxx做受欧美 | 欧美中文字幕一区二区三区 | 久久99国产精一区二区三区 | 国产一区二区免费电影 | 影音av| 色播久久| 国产精品1区2区 | 成人高潮片免费视频欧美 | 日韩一区二区三区四区五区六区 | 亚洲精品欧美 |