Signatur
Beschreibung
Der Additionszuweisung-Operator (+=) ist eine Kurzform für x = x + y. Er kombiniert die Addition mit einer gleichzeitigen Zuweisung und spart dadurch redundante Schreibarbeit. Der Operator verhält sich identisch zum +-Operator: Bei numerischen Werten wird arithmetisch addiert, bei mindestens einem String-Operanden wird eine String-Konkatenation durchgeführt.
Die Typauflösung folgt den üblichen JavaScript-Regeln: Sind beide Operanden Zahlen, liefert += eine numerische Summe. Ist einer der Operanden ein String, werden beide Werte zu Strings umgewandelt und zusammengehängt. Andere Typen (z. B. Booleans, Arrays, Objekte) werden vor der Operation automatisch per Type Coercion umgewandelt.
Der linke Operand muss eine gültige Zuweisung-Referenz sein — also eine Variable, eine Objekt-Eigenschaft oder ein Array-Element. Ein Literal auf der linken Seite (z. B. 1 += 2) ist ein Syntaxfehler.
- Numerisch:
let n = 5; n += 3;→nist8 - String:
let s = "Hallo"; s += " Welt";→sist"Hallo Welt" - Gemischt:
let x = 1; x += " Apfel";→xist"1 Apfel"
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $x Pflicht | number | string | bigint | any | — | Der linke Operand — muss eine zuweisbare Referenz (Variable, Objekt-Eigenschaft, Array-Element) sein. Empfängt nach der Operation das berechnete Ergebnis. |
| $y Pflicht | number | string | bigint | any | — | Der rechte Operand — der Wert, der zu x addiert oder an x angehängt wird. |
Rückgabewert
x zugewiesen wird. Der Typ des Rückgabewerts hängt von den Eingabetypen ab (Zahlen → number, Strings → string, BigInts → bigint).Beispiele
Numerische Addition
let punkte = 10;
punkte += 5; // entspricht: punkte = punkte + 5
console.log(punkte);
let preis = 19.99;
preis += 5.01;
console.log(preis);
String-Konkatenation
let begruessung = "Hallo";
begruessung += ", ";
begruessung += "Welt";
begruessung += "!";
console.log(begruessung);
Text schrittweise aufbauen (Praxis)
const zeilen = ["Zeile 1", "Zeile 2", "Zeile 3"];
let ausgabe = "";
for (const zeile of zeilen) {
ausgabe += zeile + "\n";
}
console.log(ausgabe);
Objekt-Eigenschaft und Type Coercion
const warenkorb = { gesamtpreis: 0 };
const artikel = [12.5, 9.99, 4.49];
for (const preis of artikel) {
warenkorb.gesamtpreis += preis;
}
console.log(warenkorb.gesamtpreis.toFixed(2));
// Type Coercion: Zahl + String → String
let wert = 42;
wert += " Euro";
console.log(wert); // "42 Euro"
console.log(typeof wert); // "string"
// Wichtig · Fallstricke
Type Coercion-Falle: Sobald einer der Operanden ein String ist, wird auch der andere zu einem String konvertiert. Das führt zu häufigen Bugs, wenn z. B. Eingaben aus HTML-Formularen (input.value) direkt verwendet werden — diese sind immer Strings. Vor numerischen Operationen deshalb explizit mit Number() oder dem unären +-Operator konvertieren.
BigInt: += funktioniert mit BigInt-Werten, aber es dürfen keine gemischten Typen verwendet werden (BigInt + number wirft einen TypeError).
Performance bei String-Aufbau: In sehr engen Schleifen mit vielen Konkatenationen kann die Verwendung eines Arrays mit anschließendem Array.prototype.join() performanter sein als wiederholtes +=, da jedes += einen neuen String erzeugt. In der Praxis ist der Unterschied bei modernen JS-Engines jedoch meist vernachlässigbar.
Keine Anwendung auf const: Da += eine Zuweisung darstellt, ist es nicht auf const-Variablen anwendbar — der Versuch führt zu einem TypeError zur Laufzeit.