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]); }