| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Addition | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.
Der Addition (+) Operator erzeugt die Summe numerischer Operanden oder eine Zeichenfolgenverkettung.
console.log(2 + 2);
// Expected output: 4
console.log(2 + true);
// Expected output: 3
console.log("hello " + "everyone");
// Expected output: "hello everyone"
console.log(2001 + ": A Space Odyssey");
// Expected output: "2001: A Space Odyssey"
x + y
Der + Operator ist fr zwei unterschiedliche Operationen berladen: numerische Addition und Zeichenfolgenverkettung. Bei der Auswertung werden zunchst beide Operanden zu Primitiven konvertiert. Danach werden die Typen der beiden Operanden geprft:
TypeError ausgelst.Die Zeichenfolgenverkettung wird oft als gleichwertig mit Template-Literalen oder String.prototype.concat() angesehen, aber sie sind es nicht. Die Addition zwingt den Ausdruck zu einem primitiven, was valueOf() mit Prioritt aufruft; hingegen zwingen Template-Literale und concat() den Ausdruck in eine Zeichenfolge, was toString() mit Prioritt aufruft. Wenn der Ausdruck eine [Symbol.toPrimitive]() Methode hat, ruft die Zeichenfolgenverkettung sie mit dem Hinweis "default" auf, whrend Template-Literale "string" verwenden. Dies ist wichtig fr Objekte, die unterschiedliche Zeichenfolgen- und Primrdarstellungen haben wie Temporal, dessen valueOf()-Methoden fr alle Objekte eine Ausnahme werfen.
const t = Temporal.Now.instant();
"" + t; // Throws TypeError
`${t}`; // '2022-07-31T04:48:56.113918308Z'
"".concat(t); // '2022-07-31T04:48:56.113918308Z'
Es wird empfohlen, "" + x nicht zu verwenden, um eine Zeichenfolgenkonvertierung durchzufhren.
1 + 2; // 3
Andere nicht-String-, nicht-BigInt-Werte werden in Zahlen konvertiert:
true + 1; // 2
false + false; // 0
1n + 2n; // 3n
Sie knnen BigInt- und Nummern-Operanden in der Addition nicht mischen. null, undefined und boolesche Werte werden in Zahlen konvertiert und sind ebenfalls verboten.
1n + 2; // TypeError: Cannot mix BigInt and other types, use explicit conversions
2 + 1n; // TypeError: Cannot mix BigInt and other types, use explicit conversions
Zeichenfolgen haben Vorrang vor anderen Typen, sodass das Hinzufgen einer Zeichenfolge zu einer BigInt eine Zeichenfolgenverkettung anstelle eines TypeErrors verursacht.
"1" + 2n; // "12"
Um eine Addition mit einem BigInt und einem Nicht-BigInt durchzufhren, konvertieren Sie einen der Operanden:
1n + BigInt(2); // 3n
Number(1n) + 2; // 3
Wenn einer der Operanden eine Zeichenfolge ist, wird der andere in eine Zeichenfolge umgewandelt und sie werden verkettet:
"foo" + "bar"; // "foobar"
5 + "foo"; // "5foo"
"foo" + false; // "foofalse"
"2" + 2; // "22"
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-addition-operator-plus |
-)/)*)%)**)++)--)-)+)Der Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |