【发布时间】:2021-02-09 10:04:43
【问题描述】:
在空间和/或性能方面,在 Javascript 中将许多字符串文字连接在一起的情况下,添加字符串的更有效方法是什么?
x += y;
要么
x + y;
我一直在思考这个问题。当然,对于只有两个字符串连接在一起的情况,几乎没有区别,但是无论出于何种原因,在 JS 中构建 CSS 或 html 文档或巨大的 XML 文档的情况呢?
string += " classA {}";
...
.....
string += "classX {}";
VS
string + "classA {}" +
...
.....
+ "classX {}";
抱歉,这听起来像是一个基本问题,但是当我不得不用 Java 编写 XML 解析器并实现 StringBuilder 的用法时,我遇到了类似的问题。不确定这如何转化为 JavaSript。
【问题讨论】:
-
x += y更改x的值。x + y计算表达式但不更改任何一个变量。因此,答案将部分取决于您要完成的工作。 -
@Jayce444 是的,但只是快速检查了前 3 个结果,它们已经完全过时了。甚至有人推荐
String#concat,因为出于性能原因,MDN 强烈反对使用该方法。 -
我非常喜欢 array.push 的可读性:例如
const strings = []; strings.push("classA {}"); .... strings.push("classX {}"); return strings.join(" ");。也可以考虑template literals -
@Jayce 的很多比较都是将它与数组进行比较,而不是我所寻找的,并指的是 IE 是最常用的浏览器之一。
标签: javascript string performance concatenation