JavaScript 是否有内置的 stringbuilder 类?

2022-08-30 00:50:52

我看到一些代码项目解决方案

但是JavaScript中有常规的实现吗?


答案 1

如果必须为 Internet Explorer 编写代码,请确保选择使用数组联接的实现。在 IE 上,将字符串与 or 运算符串联在一起的速度非常慢。对于 IE6 尤其如此。在现代浏览器上,通常与数组联接一样快。++=+=

当我必须做很多字符串串联时,我通常会填充一个数组,并且不使用字符串生成器类:

var html = [];
html.push(
  "<html>",
  "<body>",
  "bla bla bla",
  "</body>",
  "</html>"
);
return html.join("");

请注意,这些方法接受多个参数。push


答案 2

我刚刚重新检查了 http://jsperf.com/javascript-concat-vs-join/2 的性能。测试用例连接或连接字母表 1,000 次。

在当前的浏览器(FF,Opera,IE11,Chrome)中,“concat”比“join”快4-10倍。

在 IE8 中,两者返回的结果大致相等。

不幸的是,在IE7中,“加入”的速度快了大约100倍。