连接JavaScript中字符串的最有效方法?

2020/10/26 11:22 · javascript ·  · 0评论

在JavaScript中,我有一个包含许多迭代的循环,并且在每个迭代中,我正在创建一个包含许多+=运算符的巨大字符串有没有更有效的方式来创建字符串?我正在考虑创建一个动态数组,在该数组中不断向其中添加字符串,然后进行联接。谁能解释并举例说明最快的方法?

基于JSPerf的基准测试似乎是使用+=最快的方法,尽管不一定在每个浏览器中都使用。

对于在DOM中构建字符串,似乎最好先将字符串连接起来,然后添加到DOM中,而不是将其迭代添加到dom中。不过,您应该根据自己的情况进行基准测试。

(感谢@zAlbee进行更正)

我对串联本身没有任何评论,但我想指出@Jakub Hampl的建议:

对于在DOM中构建字符串,在某些情况下,最好迭代地添加到DOM中,而不是立即添加一个巨大的字符串。

是错误的,因为它是基于有缺陷的测试。该测试实际上从未附加到DOM中。

这个固定的测试表明,在渲染字符串之前一次创建所有字符串的过程很多,速度更快。这甚至不是比赛。

(很抱歉,这是一个单独的答案,但是我没有足够的代表对此答案发表评论。)

自回答这个问题以来已经过去三年了,但我还是会提供我的答案:)

实际上,接受的答案并不完全正确。Jakub的测试使用了硬编码的字符串,该字符串使JS引擎可以优化代码执行(Google的V8在这方面确实很棒!)。但是,一旦您使用完全随机的字符串(这里是JSPerf),则字符串连接将排在第二位。

您也可以使用模板文字进行字符串连接我更新了其他张贴者的JSPerf测试以包括其中。

for (var res = '', i = 0; i < data.length; i++) {
  res = `${res}${data[i]}`;
}
本文地址:http://javascript.askforanswer.com/lianjiejavascriptzhongzifuchuandezuiyouxiaofangfa.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!