首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

大量联接字串使用+=快还是join快

2012-09-29 
大量连接字串使用+快还是join快?需要对字串反复尾部添加字串, 可能上万次的操作, 有人说, 这种情况应该使

大量连接字串使用+=快还是join快?
需要对字串反复尾部添加字串, 可能上万次的操作, 有人说, 这种情况应该使用数组, 然后再连接成字串, 但是实测发现, 对Chrome来说: 
var s = "";
for(var i=0;i<10000;i++){
  s += "abc";
}
这样比
var s = "";
var a = Array();
for(var i=0;i<10000;i++){
  a.push("abc");
}
s = a.join("");
要快了不到一倍. 

甚至在头部添加也是一样(s="abc" + s), 而且其它浏览器, Firefox, Opera, IE9 的测试大体也是这样, 至少是差不多, 只有Opera是反过来的, 使用后一种方式快一点.

[解决办法]
我用世界之窗测试,发现数组慢啊,怎么回事呢?
[解决办法]
上次我比较仔细地测试了这个问题,用+在非IE下都是比join快的,而且快的不是一点点,一千万个字符串的操作之下,用+在FF下比Chrome下快一个数量级,IE。。。spiderMonkey对字符串的连接是做了一些特殊的优化的,用join仅仅只是为了考虑IE下的情况,IE下用join确实比+快,这也只是一些个人的理解。

热点排行