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

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

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

相關(guān)文章

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

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

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

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

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

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

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

    如何正確理解javascript的模塊化

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

    理解javascript定時器中的單線程

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

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

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

    js編寫簡易的計算器

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

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

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

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

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

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

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

最新評論

临夏县| 原阳县| 蓬安县| 呼玛县| 茌平县| 宜都市| 鞍山市| 鄂尔多斯市| 全南县| 东山县| 济阳县| 章丘市| 左云县| 南皮县| 读书| 乐至县| 界首市| 双城市| 屯留县| 韩城市| 凤凰县| 体育| 玛曲县| 台前县| 临潭县| 卢湾区| 洪湖市| 墨竹工卡县| 仁寿县| 巴楚县| 梨树县| 常宁市| 湾仔区| 仪征市| 铜鼓县| 宕昌县| 台北市| 松阳县| 沅陵县| 苍梧县| 仲巴县|