欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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 類。
復(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)文章

  • JavaScript 函數(shù)節(jié)流詳解及方法總結(jié)

    JavaScript 函數(shù)節(jié)流詳解及方法總結(jié)

    這篇文章主要介紹了JavaScript 函數(shù)節(jié)流詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 表格頭固定而列可滾動(dòng)的效果

    表格頭固定而列可滾動(dòng)的效果

    表格頭固定而列可滾動(dòng)的效果...
    2007-11-11
  • 一文學(xué)習(xí)JavaScript?使用誤區(qū)

    一文學(xué)習(xí)JavaScript?使用誤區(qū)

    在?JavaScript?程序中如果你在?if?條件語(yǔ)句中使用賦值運(yùn)算符的等號(hào)?(=)?將會(huì)產(chǎn)生一個(gè)錯(cuò)誤結(jié)果,?正確的方法是使用比較運(yùn)算符的兩個(gè)等號(hào)?(==),這篇文章主要介紹了一文學(xué)習(xí)JavaScript?使用誤區(qū),需要的朋友可以參考下
    2023-02-02
  • JS與SQL方式隨機(jī)生成高強(qiáng)度密碼示例

    JS與SQL方式隨機(jī)生成高強(qiáng)度密碼示例

    這篇文章主要介紹了JS與SQL方式隨機(jī)生成高強(qiáng)度密碼,結(jié)合實(shí)例形式分析了javascript方式與SQL方式生成高強(qiáng)度密碼的相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • 淺談JS的基礎(chǔ)類型與引用類型

    淺談JS的基礎(chǔ)類型與引用類型

    下面小編就為大家?guī)?lái)一篇淺談JS的基礎(chǔ)類型與引用類型。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • window.onload使用指南

    window.onload使用指南

    我們經(jīng)常使用 window.onload 來(lái)處理頁(yè)面,當(dāng)頁(yè)面加載完成做一些事情。但這個(gè) window.onload 是頁(yè)面全部加載完成,甚至包括圖片,下面我們就來(lái)詳細(xì)探討下window.onload的用法
    2015-09-09
  • JS常見構(gòu)造模式實(shí)例對(duì)比分析

    JS常見構(gòu)造模式實(shí)例對(duì)比分析

    這篇文章主要介紹了JS常見構(gòu)造模式,結(jié)合實(shí)例形式對(duì)比分析了工廠模式、構(gòu)造函數(shù)模式、原型模式、寄生構(gòu)造函數(shù)模式、穩(wěn)妥構(gòu)造函數(shù)模式等相關(guān)概念、原理、實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • JavaScript實(shí)現(xiàn)手寫call/apply/bind的示例代碼

    JavaScript實(shí)現(xiàn)手寫call/apply/bind的示例代碼

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)手寫call/apply/bind的方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JavaScript有一定的幫助,需要的可以參考一下
    2023-02-02
  • layui監(jiān)聽select變化,以及設(shè)置radio選中的方法

    layui監(jiān)聽select變化,以及設(shè)置radio選中的方法

    今天小編就為大家分享一篇layui監(jiān)聽select變化,以及設(shè)置radio選中的方法,具有好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • 30分鐘快速掌握Bootstrap框架

    30分鐘快速掌握Bootstrap框架

    Bootstrap 是一個(gè)用于快速開發(fā) Web 應(yīng)用程序和網(wǎng)站的前端框架。接下來(lái)通過(guò)本文給大家介紹如何快速掌握Bootstrap,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05

最新評(píng)論