字符串拼接性能优化

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]);  
   } 
相关文章
相关标签/搜索