JS字符串数组拼接性能的探讨
我们知道,在JS中,字符串连接是性能最低的操作之一。例如:
复制代码代码如下所示:
var;
文本+世界!;
早期浏览器没有优化此操作。
由于字符串是不可变的,这意味着会创建一个中间字符串来存储连接的结果。
因此,可以使用数组对象进行优化。
例如:
var缓冲区},i = 0;
与推法相比,相应的索引值添加元素更快。
缓冲区!;
var text = buffer.join();
在早期浏览器中,没有创建和销毁中间字符串。在大量字符串连接的情况下,这种技术被证明比加法方法快得多。
琴弦现在浏览器优化了字符串的连接。Safari,Opera,Chrome,Firefox,和IE8都显示在加法运算性能更好。然而,在IE8不优化的版本,所以阵列的方法仍然是有效的。这并不意味着我们要做浏览器测试字符串时连接字符串的大小和数量应考虑当决定如何连接。
当字符串比较小(小于20个字符)和连接数比较小(小于1000),所有的浏览器都可以在小于1毫秒与加法运算符添加连接。增加字符串或小时数,和IE7的性能会明显下降。当字符串的大小增加,在加法运算符和数量在Firefox的性能差异会更小。当弦数增加,在加法运算符和数量在Safari的性能差异会更小。在Chrome和Opera加法运算符通过改变字符串或小时数保持领先优势。
因此,由于各种浏览器的性能不一致,技术的选择取决于实际情况和面向浏览器的浏览器。
在大多数情况下,添加剂的经营者是第一选择;如果用户使用IE6或7,字符串的尺寸较大或大,阵列技术是值得的。
一般来说,如果它是一个语义字符串,则不应使用数组,如:
你好,我的名字是+名字;
如果字符串是相似情况的副本
var数组{ };
对于(i = 0;i <长度;i ++){
数组{;
}
document.getelementbyid('somewhere).innerHTML = array.join(' ');
这里介绍JS字符串数组连接的性能比较,希望能对您有所帮助。