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()方法改为字符串,因为字符串一旦创建,它的值不能改变,要改变某变量保存的字符串,首先得销毁原来的字符串,然后再用新的字符串填充变量,因此字符串拼接速度慢,效率低。
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]); }