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

JavaScript中String和StringBuffer的速度之爭(zhēng)

 更新時(shí)間:2010年04月01日 16:52:57   作者:  
很多Javascript書籍中都是類比于Java說(shuō)String在頻繁的和大量的字符串連接方面的效率是不如StringBuffer的。
顯示情況時(shí)Javascript中并沒(méi)有StringBuffer類,一種主流的Javascript StringBuffer類的實(shí)現(xiàn)是通過(guò)prototype構(gòu)造一個(gè)StringBuffer類。
StringBuffer.js
復(fù)制代碼 代碼如下:

function StringBuffer(){
this.content = new Array;
}
StringBuffer.prototype.append = function( str ){
this.content.push( str );
}
StringBuffer.prototype.toString = function(){
return this.content.join("");
}

現(xiàn)在讓我們寫一個(gè)測(cè)試用例:
TestStringBUffer.html
復(fù)制代碼 代碼如下:

<html>
<head>
<title>test</title>
<script type="text/javascript“ language="javascript" src="StringBuffer.js"></script>
<script>
function testStringBuffer(){
var date1 = new Date();
var str;
for( var i=0; i<10000; i++){
str += "text";
}
var date2 = new Date();
document.writeln("Sting use time:"+ (date2 - date1) +"ms");
var date3 = new Date();
var strBuffer = new StringBuffer();
for(i=0; i<10000; i++){
strBuffer.append("text");
}
strBuffer.toString();
var date4 = new Date();
document.writeln("<br/>StringBuffer use time:"+ (date4 - date3) +"ms");
}
</script>
</head>
<body>
<input type="button" value="testStringBuffer" onclick="testStringBuffer()"/>
</body>
</html>

現(xiàn)在讓我們來(lái)測(cè)試下,看看會(huì)有什么發(fā)生:
IE8:
Sting use time:11ms
StringBuffer use time:47ms
結(jié)果是StringBuffer不但沒(méi)有比String效率高,反而使低了不少。難道是前輩們錯(cuò)了?
那讓我們?cè)僭趧e的瀏覽器中看看吧:
IE7:
Sting use time:266ms
StringBuffer use time:78ms
IE7中StringBuffer的優(yōu)勢(shì)很明顯。
可以看到,在現(xiàn)在的主流瀏覽器中,都對(duì)String類的字符串連接作了優(yōu)化,所以性能要好于自定義的StringBuffer類,但是在比較老的瀏覽器中,StringBuffer類的優(yōu)勢(shì)仍然很明顯。具體在實(shí)際中就需要對(duì)瀏覽器進(jìn)行判斷。

相關(guān)文章

  • IE6圖片加載的一個(gè)BUG解決方法

    IE6圖片加載的一個(gè)BUG解決方法

    小圖整合在一張大圖里,然后在不同的CSS里調(diào)用同一張圖片,以此來(lái)減少請(qǐng)求數(shù),這是頁(yè)面優(yōu)化最常用的手段,但I(xiàn)E6會(huì)對(duì)頁(yè)面里同一個(gè)圖片,只要在不同的地方有引用到就會(huì)重新請(qǐng)求一次,需要加JS代碼解決。
    2010-07-07
  • JS徹底弄懂GMT和UTC時(shí)區(qū)

    JS徹底弄懂GMT和UTC時(shí)區(qū)

    這篇文章主要介紹了JS徹底弄懂GMT和UTC時(shí)區(qū),對(duì)時(shí)間感興趣的同學(xué),可以參考下
    2021-04-04
  • javascript 導(dǎo)出數(shù)據(jù)到Excel(處理table中的元素)

    javascript 導(dǎo)出數(shù)據(jù)到Excel(處理table中的元素)

    最近做的項(xiàng)目中有個(gè)要求,需要將數(shù)據(jù)導(dǎo)出到Excel中,關(guān)于這個(gè)就不是什么問(wèn)題,網(wǎng)上的資料很多??僧?dāng)Table中有Input(text)之類的元素是怎么辦?
    2009-12-12
  • 微信小程序地圖繪制線段并且測(cè)量(實(shí)例代碼)

    微信小程序地圖繪制線段并且測(cè)量(實(shí)例代碼)

    這篇文章主要介紹了微信小程序地圖繪制線段并且測(cè)量,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • JS監(jiān)聽dom高度變化幾種常用方法總結(jié)

    JS監(jiān)聽dom高度變化幾種常用方法總結(jié)

    我們?cè)陂_發(fā)中會(huì)遇到一些需求,需要監(jiān)聽元素變化,比如元素屬性變化,元素大小變化,這篇文章主要給大家介紹了關(guān)于JS監(jiān)聽dom高度變化幾種常用方法的相關(guān)資料,需要的朋友可以參考下
    2023-10-10
  • javascript驗(yàn)證身份證完全方法具體實(shí)現(xiàn)

    javascript驗(yàn)證身份證完全方法具體實(shí)現(xiàn)

    下面這段代碼完全實(shí)現(xiàn)了判斷身份證是否合格.傳入身份證號(hào)碼就行了。包括了公安部的算法。下面的是用Ext實(shí)現(xiàn)的。但是基于javascript的語(yǔ)法居多,基本都可以用
    2013-11-11
  • 深入理解javascript中concat方法

    深入理解javascript中concat方法

    本文主要介紹了javascript中concat方法,主要分為2小節(jié)內(nèi)容:1.concat方法的基礎(chǔ)介紹;2.從實(shí)例中感受concat方法。需要的朋友一起來(lái)看下吧
    2016-12-12
  • js 判斷各種數(shù)據(jù)類型的簡(jiǎn)單方法(推薦)

    js 判斷各種數(shù)據(jù)類型的簡(jiǎn)單方法(推薦)

    下面小編就為大家?guī)?lái)一篇js 判斷各種數(shù)據(jù)類型的簡(jiǎn)單方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08
  • JavaScript自動(dòng)內(nèi)存管理與垃圾回收策略詳細(xì)分析講解

    JavaScript自動(dòng)內(nèi)存管理與垃圾回收策略詳細(xì)分析講解

    JS的垃圾回收機(jī)制是為了以防內(nèi)存泄漏,內(nèi)存泄漏的含義就是當(dāng)已經(jīng)不需要某塊內(nèi)存時(shí)這塊內(nèi)存還存在著,垃圾回收機(jī)制就是間歇的不定期的尋找到不再使用的變量,并釋放掉它們所指向的內(nèi)存。因?yàn)閮?nèi)存的大小是有限的,所以當(dāng)內(nèi)存不再需要的時(shí)候,我們需要對(duì)其進(jìn)行釋放
    2023-01-01
  • 全面了解javascript三元運(yùn)算符

    全面了解javascript三元運(yùn)算符

    下面小編就為大家?guī)?lái)一篇全面了解javascript三元運(yùn)算符。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06

最新評(píng)論