JavaScript开发中,经常需要组合字符串进行输出,比如接收服务端信息,然后格式化成html再显示到页面上。
一般用到两种方法来进行拼接,Array.join和+=串联字符串,为了得到最佳的效率,对这两种方法进行了测试;
Array.join测试代码:
var timer = new Date().getTime();
var arr = new Array();
for (var i = 0; i < 50000; i++){
arr.push('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
}
arr.join('');
document.write(new Date().getTime() - timer);
+=测试代码:
var timer = new Date().getTime();
var str = '';
for (var i = 0; i < 50000; i++){
str += 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
}
document.write(new Date().getTime() - timer);
结果看下图(测试结果因电脑性能而异,数据只代表在我电脑上的结果):
50000次的拼接,每次拼接150个字符:

在这些比较标准的浏览器里,+=和Array.join的方法结果差不多,Opera在join后,效率降低很多。
然后对IE7进行了测试:
10000次拼接,每次拼接150个字符,不要弄5万10万的,别怪我没告诉你~

在IE7里就有相当明显的出入了,10000次拼接,差了2W多ms。
所以,拼接字符串,推荐使用join的方法,较优于+=的拼接方法,特别是在IE里,有相当大的改善。
最后嘀咕两句, IE这个**,实在不想说什么了,安全性,性能,功能,无一是处的浏览器,现在却占有着60%+的份额,我$#$&*@~~~~推荐FireFox,安全,标准的浏览器,下载地址请猛击这里









评论(1)
google “js 字符串” 首页就看到一哥的网站,顶一个