JS strings "+" vs concat method
JavascriptJavascript 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