最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2008年12月20日 15:23:19   作者:  
從多次測(cè)試結(jié)果看來(lái),使用StringBuffer 可以節(jié)省50%以上的時(shí)間
復(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 類(lèi)。
復(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é)果看來(lái),使用StringBuffer 可以節(jié)省50%以上的時(shí)間。

相關(guān)文章

  • uniapp表單校驗(yàn)超詳細(xì)講解

    uniapp表單校驗(yàn)超詳細(xì)講解

    這篇文章主要給大家介紹了關(guān)于uniapp表單校驗(yàn)的相關(guān)資料,Uni-app內(nèi)置了一些表單驗(yàn)證方法,可以幫助我們對(duì)表單進(jìn)行有效的驗(yàn)證,需要的朋友可以參考下
    2023-10-10
  • javascript Array對(duì)象使用小結(jié)

    javascript Array對(duì)象使用小結(jié)

    數(shù)組是一段線(xiàn)性分配的內(nèi)存,它通過(guò)整數(shù)去計(jì)算偏移并訪問(wèn)其中的元素。數(shù)組是很快的數(shù)據(jù)結(jié)構(gòu),但不幸的是,Javascript并沒(méi)有像這種數(shù)組一樣的數(shù)據(jù)結(jié)構(gòu)。
    2009-12-12
  • 兼容IE與Firefox的js 復(fù)制代碼

    兼容IE與Firefox的js 復(fù)制代碼

    這是一段點(diǎn)擊復(fù)制的代碼,現(xiàn)在我的頁(yè)面里不僅有1個(gè)鏈接需要用到這段代碼。請(qǐng)哪位好心人指教一下應(yīng)該怎么用ID對(duì)應(yīng)的方式來(lái)改寫(xiě)這段js,使它實(shí)現(xiàn)一個(gè)點(diǎn)擊復(fù)制對(duì)應(yīng)1個(gè)相應(yīng)內(nèi)容
    2009-12-12
  • 如何正確理解javascript的模塊化

    如何正確理解javascript的模塊化

    模塊化在項(xiàng)目中十分的重要,一個(gè)復(fù)雜的項(xiàng)目肯定有很多相似的功能模塊,如果每次都需要重新編寫(xiě)模塊肯定既費(fèi)時(shí)又耗力。但是引用別人編寫(xiě)模塊的前提是要有統(tǒng)一的“打開(kāi)姿勢(shì)”,如果每個(gè)人有各自的寫(xiě)法,那么肯定會(huì)亂套,下面介紹幾種JS的模塊化的規(guī)范。
    2017-03-03
  • 理解javascript定時(shí)器中的單線(xiàn)程

    理解javascript定時(shí)器中的單線(xiàn)程

    這篇文章主要幫助大家理解javascript定時(shí)器中的單線(xiàn)程,感興趣的小伙伴們可以參考一下
    2016-02-02
  • JS實(shí)現(xiàn)搜索框文字可刪除功能

    JS實(shí)現(xiàn)搜索框文字可刪除功能

    本文給大家分享一段js代碼實(shí)現(xiàn)搜索框文字可刪除功能,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2016-12-12
  • js編寫(xiě)簡(jiǎn)易的計(jì)算器

    js編寫(xiě)簡(jiǎn)易的計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了js編寫(xiě)簡(jiǎn)易的計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 奉獻(xiàn)給JavaScript初學(xué)者的編寫(xiě)開(kāi)發(fā)的七個(gè)細(xì)節(jié)

    奉獻(xiàn)給JavaScript初學(xué)者的編寫(xiě)開(kāi)發(fā)的七個(gè)細(xì)節(jié)

    每種語(yǔ)言都有它特別的地方,對(duì)于JavaScript來(lái)說(shuō),使用var就可以聲明任意類(lèi)型的變量,這門(mén)腳本語(yǔ)言看起來(lái)很簡(jiǎn)單,然而想要寫(xiě)出優(yōu)雅的代碼卻是需要不斷積累經(jīng)驗(yàn)的。本文利列舉了JavaScript初學(xué)者應(yīng)該注意的七個(gè)細(xì)節(jié),與大家分享。
    2011-01-01
  • Echarts實(shí)現(xiàn)暫無(wú)數(shù)據(jù)的三種方法

    Echarts實(shí)現(xiàn)暫無(wú)數(shù)據(jù)的三種方法

    本文將介紹如何使用Echarts實(shí)現(xiàn)暫無(wú)數(shù)據(jù)的三種方法,詳細(xì)講解這三種方法的實(shí)現(xiàn)步驟和效果展示,幫助讀者更好地理解如何在Echarts中處理暫無(wú)數(shù)據(jù)的情況
    2023-08-08
  • 在JavaScript中實(shí)現(xiàn)命名空間

    在JavaScript中實(shí)現(xiàn)命名空間

    在JavaScript中實(shí)現(xiàn)命名空間...
    2006-11-11

最新評(píng)論

德清县| 灵台县| 清远市| 商都县| 顺义区| 钦州市| 西林县| 新蔡县| 察雅县| 新晃| 永登县| 通渭县| 阳曲县| 蓬安县| 大关县| 白城市| 灵山县| 仁寿县| 满洲里市| 景东| 香河县| 阜宁县| 当涂县| 淮阳县| 辽中县| 北川| 兴和县| 内丘县| 历史| 美姑县| 出国| 乌海市| 大厂| 八宿县| 和龙市| 安陆市| 普陀区| 绥江县| 龙胜| 西宁市| 吉木乃县|