日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Javascript中的長(zhǎng)字符串拼接

字符串拼接是所有程序設(shè)計(jì)語(yǔ)言都需要的操作。當(dāng)拼接結(jié)果較長(zhǎng)時(shí),如何保證效率就成為一個(gè)很重要的問(wèn)題。

C 語(yǔ)言的 strcat 函數(shù)直接操作內(nèi)存,效率自然最高;C++ 的 string 類是可變的,本質(zhì)上也是直接操作內(nèi)存,效率也不在話下;Java 的 String 類不可變,字符串拼接意味著產(chǎn)生新對(duì)象,因此提供了專門用于字符串拼接的 StringBuffer 類,也保證了執(zhí)行效率。

在 Javascript 中,大規(guī)模的字符串拼接雖不常見(jiàn),但也并非沒(méi)有。

在這種情況下,傳統(tǒng)的字符串拼接會(huì)比較慢:

 
 
  1.  

在筆者的機(jī)器上(下同)這段代碼要執(zhí)行 3 秒鐘。有沒(méi)有比較快的拼接方法?答案是肯定的,Javascript 也提供了一個(gè)類似 StringBuffer 的東西,那就是數(shù)組:

 
 
  1.  

這段代碼只需執(zhí)行 80 毫秒左右,比傳統(tǒng)的字符串拼接快了數(shù)十倍。這是針對(duì)大規(guī)模的字符串拼接而言。對(duì)于小規(guī)模的字符串拼接,我們可以比較一下兩種拼接方法的效率:

 
 
  1.  

這一輪是傳統(tǒng)的拼接方式勝出,其速度大約是數(shù)組方式的兩倍多??梢则?yàn)證,拼接的次數(shù)越少,傳統(tǒng)的拼接方式優(yōu)勢(shì)越大。因此,在大規(guī)模的拼接中,如果混用傳統(tǒng)拼接方法和數(shù)組拼接方法,速度會(huì)更快:

 
 
  1.  

這次只需執(zhí)行 30 毫秒了。因此,筆者推薦以數(shù)組方式為主,適當(dāng)輔以傳統(tǒng)方式來(lái)拼接長(zhǎng)字符串。下面是一個(gè)實(shí)例:

 
 
  1.  
  2.  

說(shuō)明:

1、傳統(tǒng)方式與數(shù)組方式會(huì)有以上差別的原因在于:傳統(tǒng)方式拼接 n 個(gè)字符串的時(shí)間復(fù)雜度為 O(n^2),但系數(shù)較??;數(shù)組方式的時(shí)間復(fù)雜度為 O(n),但系數(shù)較大。

2、以上代碼在 IE6 中調(diào)試通過(guò)。

希望本文能夠給你帶來(lái)幫助。


本文名稱:Javascript中的長(zhǎng)字符串拼接
鏈接分享:http://www.5511xx.com/article/djijgso.html