成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【js運(yùn)算性能系列】拼接字符串的方法及性能比較

周國輝 / 2069人閱讀

摘要:將多個(gè)字符串拼接在一起,通常有以下三種方法,在實(shí)踐中都是經(jīng)常用到的。先把字符串寫入臨時(shí)數(shù)組中,然后調(diào)用數(shù)組的方法,將其中的字符串元素連接起來。使用字符串的函數(shù)。

將多個(gè)字符串拼接在一起,通常有以下三種方法,在實(shí)踐中都是經(jīng)常用到的。

使用字符串連接符 ‘+’, "string1" + "string2" + ...

使用數(shù)組的join函數(shù)。先把字符串寫入臨時(shí)數(shù)組中,然后調(diào)用數(shù)組的join方法,將其中的字符串元素連接起來。

使用字符串的concat函數(shù)。

方法一: 使用字符串連接符 ‘+’
var concat1 = function(str1, str2){
    return str1 + str2;
};
方法二: 使用數(shù)組的join函數(shù)
var concat2 = function(str1, str2){
    var arr = [];
    arr.push(str1);
    arr.push(str2);

    return arr.join();
};
方法三: 使用字符串的concat函數(shù)
var concat3 = function(str1, str2){
    return str1.concat(str2);
};
性能總結(jié)

我在本地用Benchmark對上述兩種方法做了性能對比,測試環(huán)境為Testing in Chrome 46.0.2490 / Mac OS X 10.10.4,結(jié)果如下:

concat#+ x 90,483,047 ops/sec ±2.06% (84 runs sampled)
concat#array-jion x 12,303,912 ops/sec ±0.90% (82 runs sampled)
concat#string-concat x 40,845,196 ops/sec ±0.83% (89 runs sampled)
Fastest is concat#+

也就是說在chrome 46下,使用字符串連接符‘+’的效率要高很多。
當(dāng)然這只是在chrome 46環(huán)境下的測試,并不能代表所有的瀏覽器平臺(tái)。

在jsPerf也有類似的性能測試 https://jsperf.com/concat-vs-...
測試效果如下:

到底哪種方法更高效?這跟各瀏覽器的引擎有關(guān),根據(jù)JavaScript 怎樣高效拼接字符串?這篇文章,自己做了個(gè)簡單歸納。(一家之言,沒做深入驗(yàn)證)

在舊瀏覽器(ie7-)下用 join 會(huì)更高效。

在現(xiàn)代瀏覽器,盡量用"+",更高效。

當(dāng)然,在少數(shù)現(xiàn)代瀏覽器里 “+” 不一定會(huì)比 join 快(如,safari 5.0.5,opera 11.10)

本身是字符串?dāng)?shù)組的,直接 join 會(huì)更好。

"+"concat之間,當(dāng)然是優(yōu)選使用"+",方便又直觀又高效。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/88034.html

相關(guān)文章

  • 前端性能優(yōu)化指南

    摘要:前端性能優(yōu)化指南優(yōu)化緩存異步并不等于即時(shí)。操作性能問題主要有以下原因。發(fā)生在之前,所以相對來說會(huì)造成更多性能損耗。新引擎還對對象屬性訪問做了優(yōu)化,解決方案叫,簡稱。代價(jià)是前置的掃描類型編譯優(yōu)化。數(shù)組,,閉包變量不在優(yōu)化范疇之列。 前端性能優(yōu)化指南 AJAX優(yōu)化 緩存AJAX: 異步并不等于即時(shí)。 請求使用GET: 當(dāng)使用XMLHttpRequest時(shí),而URL長度不到2K...

    Pink 評(píng)論0 收藏0
  • React系列之 React入門

    摘要:原文地址是一個(gè)庫,主要是通過操作數(shù)據(jù)的方式去操縱,為什么要重造輪子呢,因?yàn)橛X的目前市面上的框架對于創(chuàng)建大型應(yīng)用程序不夠直觀,不能滿足需求,所以誕生了。其實(shí)說它性能高,只不過是用的方式計(jì)算出最小的操作,所以性能就上來了。 原文地址:https://gmiam.com/post/react-... React 是一個(gè) JS 庫,主要是通過操作數(shù)據(jù)的方式去操縱 DOM,為什么要重造輪子呢,因...

    pf_miles 評(píng)論0 收藏0
  • XCel 項(xiàng)目總結(jié) - Electron 與 Vue 性能優(yōu)化

    摘要:而這里的單元格信息是唯一的,所以直接通過為一個(gè)空對象賦值即可。和相關(guān)的知識(shí)和技巧高亮的列單元格采用展示。在中,被選中的單元格會(huì)高亮相應(yīng)的行和列,以提醒用戶。 showImg(https://segmentfault.com/img/bVGkdk?w=900&h=500); XCEL 是一個(gè) Excel 數(shù)據(jù)清洗工具,其通過可視化的方式讓用戶輕松地對 Excel 數(shù)據(jù)進(jìn)行篩選。 XCEL...

    XUI 評(píng)論0 收藏0
  • 前端編碼習(xí)慣 —— js

    摘要:文件中的代碼塊可用以下代碼塊包裹,以減少全局污染。命名規(guī)則原則盡量避免潛在命名沖突,避免過于精簡,應(yīng)見名知意。必須與共同使用的構(gòu)造函數(shù)名應(yīng)以大寫字母開頭。變量所有的變量必須在使用前進(jìn)行聲明。僅在函數(shù)和構(gòu)造器內(nèi)使,以明確的上下指向。 代碼格式規(guī)范 1.html中外部腳本引入盡量放在尾部。 2.一個(gè)html文件中只寫一個(gè)代碼塊。 3.JS文件中的代碼塊可用以下代碼塊包裹,以減少全局污染。 ...

    LancerComet 評(píng)論0 收藏0
  • 前端性能優(yōu)化(JavaScript篇)

    摘要:像也是類似的也不建議使用,會(huì)降低性能,通過包裹的代碼塊,作用域鏈將會(huì)額外增加一層,降低索引效率對象的優(yōu)化緩存需要被使用的對象獲取數(shù)據(jù)的性能有如下順序從快到慢變量獲取數(shù)組下標(biāo)獲取對象的整數(shù)索引獲取對象屬性獲取對象非整數(shù)索引獲取。 正巧看到在送書,于是乎找了找自己博客上記錄過的一些東西來及其無恥的蹭書了~~~ 小廣告:更多內(nèi)容可以看我的博客 優(yōu)化循環(huán) 如果現(xiàn)在有個(gè)一個(gè)data[]數(shù)組...

    KunMinX 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

周國輝

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<