最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談JS中的三種字符串連接方式及其性能比較

 更新時間:2016年09月02日 11:31:44   投稿:jingxian  
下面小編就為大家?guī)硪黄獪\談JS中的三種字符串連接方式及其性能比較。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

工作中經(jīng)常會碰到要把2個或多個字符串連接成一個字符串的問題,在JS中處理這類問題一般有三種方法,這里將它們一一列出順便也對它們的性能做個具體的比較。

第一種方法 用連接符“+”把要連接的字符串連起來:

str="a";
str+="b";

毫無疑問,這種方法是最便捷快速的,如果只連接100個以下的字符串建議用這種方法最方便。

第二種方法 以數(shù)組作為中介用 join 連接字符串:

var arr=new Array();
arr.push(a);
arr.push(b);
var str=arr.join("");

w3school 網(wǎng)站介紹說這種方法要比第一種消耗更少的資源,速度也更快,后面我們通過實驗再驗證是否是這樣。

第三種方法 利用對象屬性來連接字符串

function stringConnect(){
  this._str_=new Array();
}
stringConnect.prototype.append=function(a){
  this._str_.push(a);
}
stringConnect.prototype.toString=function(){
  return this._str_.join();
}
  var mystr=new stringConnect;
  mystr.append("a");
  var str=mystr.toString();

利用下面代碼對三種方法性能進行比較,通過更改 c 的值來調整連接字符串的個數(shù):

var str="";
var d1,d2;
var c=5000;//連接字符串的個數(shù)


//------------------------測試第三種方法耗費時間-------
 d1=new Date();
function stringConnect(){
  this._str_=new Array();
}
stringConnect.prototype.append=function(a){
  this._str_.push(a);
}
stringConnect.prototype.toString=function(){
  return this._str_.join("");
}
  var mystr=new stringConnect;

  for(var i=0;i<c;i++){
    mystr.append("a");
  }
str=mystr.toString();
 d2=new Date();
 console.log(d2.getTime()-d1.getTime());
//-----------------------------------------------------

//------------------------測試第二種方法耗費時間-------
d1=new Date();
  var arr=new Array();
for(var i=0;i<c;i++){
  arr.push("a");
}
str=arr.join("");
  d2=new Date();
console.log(d2.getTime()-d1.getTime());
//-------------------------------------------------------

//------------------------測試第一種方法耗費時間-------
d1=new Date();for(var i=0;i<c;i++){
  str+="a";
}
d2=new Date();
console.log(d2.getTime()-d1.getTime());
//-------------------------------------------------------

我調整 c 分別等于5000、50000、500000、5000000,每個數(shù)值分別測了10次,最后結果如下:

c=5000
平均耗時(單位毫秒)
第三種 3 2 2 3 1 2 2 1 1 1 1.8
第二種 1 3 0 3 1 3 4 1 4 2 2.2
第一種 0 0 0 0 0 1 1 1 1 1 0.5

c=50000

第三種 22 12 9 14 12 13 13 13 10 17 13.5
第二種 8 13 12 8 11 11 8 9 8 9 9.7
第一種 7 12 5 11 10 10 10 13 16 12 10.6


c=500000

第三種 104 70 74 69 76 77 69 102 73 73 78.7
第二種 78 100 99 99 100 98 96 71 94 97 93.2
第一種 90 87 83 85 85 83 84 83 88 86 85.4


c=5000000

第三種 651 871 465 444 1012 436 787 449 432 444 599.1
第二種 568 842 593 747 417 747 719 549 573 563 631.8
第一種 516 279 616 161 466 416 201 495 510 515 417.5

統(tǒng)計5000000的時候在地址欄加入了隨機參數(shù),應該是避免了緩存的影響的。從結果來看,第一種方法并不比另2種方法消耗多,甚至還更有優(yōu)勢,這點和手冊上的說明明顯不一致。

測試系統(tǒng):win 7旗艦

瀏覽器:chrome 52.0.2739.0 m

以上這篇淺談JS中的三種字符串連接方式及其性能比較就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • js設置cookie過期及清除瀏覽器對應名稱的cookie

    js設置cookie過期及清除瀏覽器對應名稱的cookie

    js設置cookie過期也就相當于清除瀏覽器對應名稱的cookie,下面有個不錯的示例,感興趣的朋友可以參考下
    2013-10-10
  • JavaScript事件循環(huán)剖析宏任務與微任務

    JavaScript事件循環(huán)剖析宏任務與微任務

    這篇文章主要為大家介紹了JavaScript事件循環(huán)剖析宏任務與微任務示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • JavaScript 通過模式匹配實現(xiàn)重載

    JavaScript 通過模式匹配實現(xiàn)重載

    昨天rank同學向我提出一個問題,在實際應用中有些接口需要提供類似于函數(shù)重載的功能,以方便開發(fā)者組織代碼邏輯,簡化使用者調用。
    2010-08-08
  • Add Formatted Data to a Spreadsheet

    Add Formatted Data to a Spreadsheet

    Add Formatted Data to a Spreadsheet...
    2007-06-06
  • 10個很少使用的JavaScript?Console方法分享

    10個很少使用的JavaScript?Console方法分享

    你一定聽說過?console.log()?,而且可能一直在使用它,在本文中,我們將探討一些最有用的控制臺方法,以及它們在數(shù)據(jù)可視化、調試等方面的用途,感興趣的小伙伴可以學習一下
    2023-09-09
  • js中的事件捕捉模型與冒泡模型實例分析

    js中的事件捕捉模型與冒泡模型實例分析

    這篇文章主要介紹了js中的事件捕捉模型與冒泡模型,實例分析了js事件的執(zhí)行順序與冒泡模型的原理,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • 微信小程序選擇器組件picker簡單入門

    微信小程序選擇器組件picker簡單入門

    微信小程序picker表單選擇器的使用,根據(jù)官方介紹的有點不清楚,下面這篇文章主要給大家介紹了關于微信小程序選擇器組件picker的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • js給table賦值的實例代碼

    js給table賦值的實例代碼

    下面小編就為大家?guī)硪黄猨s給table賦值的實例代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • JS 文字符串轉換unicode編碼函數(shù)

    JS 文字符串轉換unicode編碼函數(shù)

    AJAX傳遞中文字符串時必須把中文字符串編碼成unicode,一般會用到JS的自帶函數(shù)escape().不過找到了更好的函數(shù)來確決中文字符轉換成unicode編碼的函數(shù)
    2009-05-05
  • JavaScript定時器原理詳解

    JavaScript定時器原理詳解

    這篇文章主要介紹了JavaScript定時器原理,setTimeout()方法用于設置一個定時器,該定時器在定時器到期后執(zhí)行調用函數(shù),文章圍繞JavaScript定時器相關資料展開以下內容,需要的朋友可以參考一下
    2021-12-12

最新評論

湘潭市| 建始县| 呼玛县| 马山县| 鄱阳县| 浦城县| 白沙| 拜泉县| 东方市| 宁城县| 武冈市| 基隆市| 兴文县| 黔南| 汉川市| 芒康县| 高雄市| 敖汉旗| 万载县| 丽江市| 深水埗区| 吉隆县| 满洲里市| 平顶山市| 禄丰县| 延安市| 玉屏| 图木舒克市| 紫阳县| 加查县| 兴义市| 兴文县| 茶陵县| 扎兰屯市| 宁安市| 南充市| 莱芜市| 普陀区| 黑水县| 铅山县| 萨迦县|