字符串拼接性能優化

var htmlString = '<div class="container">' + '<ul id="news-list">',
     for (var i = 0; i < NEWS.length; i++) {
          htmlString += '<li><a href="'+NEWS[i].LINK +'">' + NEWS[i].TITLE + '</a></li>';
     }
 htmlString += '</ul></div>';

改成數組,再將其經過join()方法改成字符串,由於字符串一旦建立,它的值不能改變,要改變某變量保存的字符串,首先得銷燬原來的字符串,而後再用新的字符串填充變量,所以字符串拼接速度慢,效率低。html

var htmlString = '<div class="container">' + '<ul id="news-list">',
elem, array
=[], for (var i = 0,len=NEWS.length;i<len;i++) { elem= '<li><a href="'+NEWS[i].LINK +'">' + NEWS[i].TITLE + '</a></li>'; array.push(elem); } array.join(""); htmlString += '</ul></div>';

再舉個例子:請指出如下代碼的性能問題,並優化。數組

 var info="騰訊拍拍網(www.paipai.com)是騰訊旗下知名電子商務網站。";  
     info +="拍拍網於2005年9月12日上線發佈,";  
     info +="2006年3月13日宣佈正式運營,";  
     info +="是目前國內第二大電子商務平臺。";  
    info=info.split(",");  
     for(var i=0; i<info.length; i++)  
      {  
         alert(info[i]);  
      } 

字符串大的話,則拼接時間會長,效率低。再一個就是優化循環體,避免每次循環都計算一次數組的長度,所以將數組長度付給變量,只在第一次循環時計算。性能

var array=[],
    info;
array.push("騰訊拍拍網(www.paipai.com)是騰訊旗下知名電子商務網站。");
array.push("拍拍網於2005年9月12日上線發佈,");
array.push("2006年3月13日宣佈正式運營,");
array.push("是目前國內第二大電子商務平臺。");
info=array.join("").split(",");  //數組到字符串再在逗號分隔符處分割成數組 for(var i=0,len=info.length;i<len;i++)  
   {  
      alert(info[i]);  
   } 
相關文章
相關標籤/搜索