JS strings "+" vs concat method

Javascript

Javascript Problem Overview


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?

Javascript Solutions


Solution 1 - Javascript

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.

Solution 2 - Javascript

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

Solution 3 - Javascript

There was a time when adding strings into an array and finalising the string by using join was the fastest/best method. These days browsers have highly optimised string routines and it is recommended that + and += methods are fastest/best

Solution 4 - Javascript

  • We can't concatenate a string variable to an integer variable using 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.
  • As we know, functions are pretty slower than operators. functions needs to pass values to the predefined functions and need to gather the results of the functions. which is slower than doing operations using operators because operators performs operations in-line but, functions used to jump to appropriate memory locations... So, As mentioned in previous answers the other difference is obviously the speed of operation.

<!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>

Solution 5 - Javascript

You can try with this code (Same case)

chaine1 + chaine2; 

I suggest you also (I prefer this) the string.concat method

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionArtemisView Question on Stackoverflow
Solution 1 - JavascriptlaktakView Answer on Stackoverflow
Solution 2 - JavascriptOzerichView Answer on Stackoverflow
Solution 3 - JavascriptXotic750View Answer on Stackoverflow
Solution 4 - JavascriptRevanthKrishnaKumar V.View Answer on Stackoverflow
Solution 5 - JavascriptAghilas YakoubView Answer on Stackoverflow