I have some experience with Java and I know that strings concatenation with "+" operator produces new object.
I'd like to know how to do it in JS in the best way, what is the best practice for it?
MDN has the following to say about string.concat():
It is strongly recommended to use the string concatenation operators (+, +=) instead of this method for perfomance reasons
Also see the link by @Bergi.
In JS, "+" concatenation works by creating a new String object.
For example, with...
var s = "Hello";
...we have one object s.
Next:
s = s + " World";
Now, s is a new object.
2nd method: String.prototype.concat
concat() function because this function only applies to a string, not on a integer. but we can concatenate a string to a number(integer) using + operator.<!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>
.concat is strictly superior, given the other answers. You mention that concat is potentially inconsistent across browsers. I'm wondering how this would happen - if they implemented toString differently?You can try with this code (Same case)
chaine1 + chaine2;
I suggest you also (I prefer this) the string.concat method
concat?
+andconcat(). There are differences other than performance, for exampleconcat()works better with nullable strings (null + "Hello"gives"nullHello"whereasnull?.concat("Hello")gives undefined).