208

我对 Java 有一些经验,我知道字符串与“+”运算符的连接会产生新的对象。

我想知道如何以最好的方式在 JS 中做到这一点,它的最佳实践是什么?

4

5 回答 5

301

MDN 有以下说法string.concat()

出于性能原因,强烈建议使用字符串连接运算符(+、+=)而不是此方法

另请参阅@Bergi 的链接

于 2013-04-20T19:05:02.120 回答
42

在 JS 中,“+”连接通过创建一个新String对象来工作。

例如,与...

var s = "Hello";

...我们有一个对象s

下一个:

s = s + " World";

现在,s是一个新对象。

第二种方法: String.prototype.concat

于 2013-04-20T19:05:28.113 回答
19

曾经有一段时间,将字符串添加到数组中并通过使用来完成字符串join是最快/最好的方法。这些天浏览器具有高度优化的字符串例程,建议++=方法是最快/最好的

于 2013-04-20T19:23:39.000 回答
11
  • 我们不能使用concat()函数将字符串变量连接到整数变量,因为此函数仅适用于字符串,而不适用于整数。但我们可以使用 + 运算符将字符串连接到数字(整数)。
  • 众所周知,函数比运算符慢得多。函数需要将值传递给预定义的函数,并且需要收集函数的结果。这比使用操作符进行操作要慢,因为操作符执行内联操作,但是函数用于跳转到适当的内存位置......所以,正如前面的答案中提到的,另一个区别显然是操作的速度。

<!DOCTYPE html>
<html>
<body>

<p>The concat() method joins two or more strings</p>


<p id="demo"></p>
<p id="demo1"></p>

<script>
var text1 = 4;
var text2 = "World!";
document.getElementById("demo").innerHTML = text1 + text2;
//Below Line can't produce result
document.getElementById("demo1").innerHTML = text1.concat(text2);
</script>
<p><strong>The Concat() method can't concatenate a string with a integer </strong></p>
</body>
</html>

于 2015-06-22T11:07:31.910 回答
3

您可以尝试使用此代码(相同的情况)

chaine1 + chaine2; 

我建议你也(我更喜欢这个)string.concat 方法

于 2013-04-20T19:03:02.000 回答