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

JavaScript中String和StringBuffer的速度之爭

 更新時間:2010年04月01日 16:52:57   作者:  
很多Javascript書籍中都是類比于Java說String在頻繁的和大量的字符串連接方面的效率是不如StringBuffer的。
顯示情況時Javascript中并沒有StringBuffer類,一種主流的Javascript StringBuffer類的實(shí)現(xiàn)是通過prototype構(gòu)造一個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)在讓我們寫一個測試用例:
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)在讓我們來測試下,看看會有什么發(fā)生:
IE8:
Sting use time:11ms
StringBuffer use time:47ms
結(jié)果是StringBuffer不但沒有比String效率高,反而使低了不少。難道是前輩們錯了?
那讓我們再在別的瀏覽器中看看吧:
IE7:
Sting use time:266ms
StringBuffer use time:78ms
IE7中StringBuffer的優(yōu)勢很明顯。
可以看到,在現(xiàn)在的主流瀏覽器中,都對String類的字符串連接作了優(yōu)化,所以性能要好于自定義的StringBuffer類,但是在比較老的瀏覽器中,StringBuffer類的優(yōu)勢仍然很明顯。具體在實(shí)際中就需要對瀏覽器進(jìn)行判斷。

相關(guān)文章

  • IE6圖片加載的一個BUG解決方法

    IE6圖片加載的一個BUG解決方法

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

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

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

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

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

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

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

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

    我們在開發(fā)中會遇到一些需求,需要監(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)了判斷身份證是否合格.傳入身份證號碼就行了。包括了公安部的算法。下面的是用Ext實(shí)現(xiàn)的。但是基于javascript的語法居多,基本都可以用
    2013-11-11
  • 深入理解javascript中concat方法

    深入理解javascript中concat方法

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

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

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

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

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

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

    下面小編就為大家?guī)硪黄媪私鈐avascript三元運(yùn)算符。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06

最新評論