JavaScript:字符串连接性能低下? Array.join('')?

2024-05-05

我读过如果我有一个for循环,我不应该使用字符串连接,因为它很慢。例如:

for (i=0;i<10000000;i++) {
    str += 'a';
}

相反,我应该使用Array.join(),因为它更快:

var tmp = [];
for (i=0;i<10000000;i++) {
    tmp.push('a');
}
var str = tmp.join('');

然而,我还读到,字符串连接只是 Internet Explorer 的一个问题,而使用 Webkit 的 Safari/Chrome 等浏览器实际上执行速度更快,而使用字符串连接比使用字符串连接要快。Array.join().

我试图找到所有主要浏览器的字符串连接与 Array.join() 之间的性能比较,但一直未能找到。

那么,什么是更快、更高效的 JavaScript 代码呢?使用字符串连接还是 Array.join()?


看来 Array.join() 在大多数浏览器中速度更快。

当前一代浏览器

FF3        array.join is ~2x faster
Safari 3   array.join ~1.5x faster
Opera 9    += ~3x faster
ie6     array.join ~6x faster
ie7     array.join ~4x faster

下一代浏览器

FF3.1      += array.join equal in speed
Chrome     +=  ~1.25x faster
IE8     array.join ~1.6x faster
Webkit     array.join ~2x faster

测试结果在这里:http://www.learningjquery.com/2009/03/43439-reasons-to-use-append- Correctly http://www.learningjquery.com/2009/03/43439-reasons-to-use-append-correctly

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript:字符串连接性能低下? Array.join('')? 的相关文章

随机推荐