it-swarm.com.de

JS Strings "+" vs Concat-Methode

Ich habe einige Erfahrung mit Java und ich weiß, dass die Verkettung von Zeichenfolgen mit dem Operator "+" ein neues Objekt erzeugt.

Ich möchte wissen, wie es in JS am besten funktioniert. Was ist die beste Vorgehensweise dafür?

123
Artemis

MDN hat folgendes zu sagen über string.concat() :

Aus Gründen der Leistung wird dringend empfohlen, anstelle dieser Methode die Zeichenfolgenverkettungsoperatoren (+, + =) zu verwenden

Siehe auch link von @Bergi.

173
laktak

In JS wird bei der "+" Verkettung ein neues String Objekt erstellt.

Zum Beispiel mit ...

var s = "Hello";

... wir haben ein Objekt s.

Nächster:

s = s + " World";

Nun ist s ein neues Objekt.

2. Methode: String.prototype.concat

22
Ozerich

Es gab eine Zeit, in der das Hinzufügen von Zeichenfolgen zu einem Array und das Finalisieren der Zeichenfolge mithilfe von join die schnellste/beste Methode war. Heutzutage haben Browser hoch optimierte Zeichenkettenroutinen und es wird empfohlen, dass + und += Methoden sind am schnellsten/besten

9
Xotic750
  • Wir können eine Zeichenfolgenvariable nicht mit der Funktion concat() mit einer Ganzzahlvariablen verknüpfen, da diese Funktion nur für eine Zeichenfolge gilt, nicht für eine Ganzzahl. Aber wir können eine Zeichenkette mit dem Operator + zu einer Zahl (Ganzzahl) verketten.
  • Wie wir wissen, sind Funktionen ziemlich langsam als Operatoren. Funktionen müssen Werte an die vordefinierten Funktionen übergeben und die Ergebnisse der Funktionen erfassen. Das ist langsamer als das Ausführen von Operationen mit Operatoren, da Operatoren Operationen in-line ausführen, aber Funktionen, die zum Springen zu geeigneten Speicherstellen verwendet werden.
<!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>

Sie können mit diesem Code versuchen (gleicher Fall)

chaine1 + chaine2; 

Ich empfehle Ihnen auch (ich bevorzuge dies) die string.concat Methode

4
Aghilas Yakoub