Start · Sprachen · JavaScript · Referenz · Addition Assignment (+=)

Addition Assignment (+=)

Operator

Der <code>+=</code>-Operator addiert den rechten Operanden zum linken (oder verkettet Strings) und weist das Ergebnis dem linken Operanden zu.

seit JavaScript ES1 Kategorie: syntax

Signatur

x += y

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;n ist 8
  • String: let s = "Hallo"; s += " Welt";s ist "Hallo Welt"
  • Gemischt: let x = 1; x += " Apfel";x ist "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

Typ
number | string | bigint
Beschreibung
Das Ergebnis der Addition bzw. String-Konkatenation, das gleichzeitig 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);
15 25

String-Konkatenation

let begruessung = "Hallo";
begruessung += ", ";
begruessung += "Welt";
begruessung += "!";
console.log(begruessung);
Hallo, Welt!

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);
Zeile 1 Zeile 2 Zeile 3

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"
26.98 42 Euro 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.