Fossil Jue & Young Mu @Shanghai
3年前,Ajax开始火热起来的时候,很多关于Javascript的书都会谈到js中字符串相加的性能优化问题。解决的方法就是使用Array的join方法。这个方法确实很妙,在IE6,IE7下能提升大约5倍的性能。
3年后,偶然发现join比+=高效的说法不再正确了,在某些浏览器里。简单测试了一下,在IE 8,Chrome 4,Opera 10,Safari 4中直接使用字符串相加的方法要优于使用数组join,看来新浏览器都已经对此做了优化——除了Firefox。
有兴趣的同学可以去测试一下,网上的测试代码一大把,都是雷同的。注意测试的先后顺序会影响测试结果:比如先测+=再测join和先测join再测+=的结果有差异;前后两次join的结果也不同。
另外,arr[arr.length] = text 执行起来也比 arr.push(text) 略微快些。