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 Geräten und in vielen Browserversionen. Sie ist seit Juli 2020 browserübergreifend verfügbar.
Der nullish coalescing (??) Operator ist ein logischer Operator, der seinen rechten Operanden zurückgibt, wenn sein linker Operand null oder undefined ist, andernfalls gibt er seinen linken Operanden zurück.
Der nullish coalescing Operator kann als ein Sonderfall des logischen ODER-Operators (||) angesehen werden. Letzterer gibt den rechten Operanden zurück, wenn der linke Operand irgendeinen falsy Wert hat, nicht nur null oder undefined. Mit anderen Worten, wenn Sie || verwenden, um einem anderen Variablen foo einen Standardwert zuzuweisen, könnten unerwartete Verhaltensweisen auftreten, wenn Sie einige falsy Werte als verwendbar betrachten (z.B. '' oder 0). Siehe unten für weitere Beispiele.
Der nullish coalescing Operator hat die fünfthöchste Operator-Priorität, direkt niedriger als || und direkt höher als der Bedingungsoperator (ternär).
Es ist nicht möglich, die AND (&&) oder OR-Operatoren (||) direkt mit ?? zu kombinieren. Ein Syntaxfehler wird in solchen Fällen ausgelöst.
Stattdessen stellen Sie Klammern bereit, um die Priorität explizit anzuzeigen:
In diesem Beispiel werden wir Standardwerte bereitstellen, aber andere als null oder undefined beibehalten.
Früher, wenn man einem Variablen einen Standardwert zuweisen wollte, war ein häufig verwendetes Muster, den logischen ODER-Operator (||) zu verwenden:
Aufgrund dessen, dass || ein boolescher logischer Operator ist, wurde der linke Operand für die Auswertung zu einem Boolean konvertiert, und jeder falsy Wert (einschließlich 0, '', NaN, false, etc.) wurde nicht zurückgegeben. Dieses Verhalten kann unerwartete Konsequenzen haben, wenn Sie 0, '' oder NaN als gültige Werte betrachten.
Der nullish coalescing Operator vermeidet diesen Fallstrick, indem er nur den zweiten Operanden zurückgibt, wenn der erste entweder null oder undefined ist (aber keine anderen falschen Werte):
Wie bei den logischen Operatoren 'ODER' und 'UND' wird der Ausdruck auf der rechten Seite nicht ausgewertet, wenn die linke Seite sich als weder null noch undefined erweist.
Der nullish coalescing Operator behandelt undefined und null als spezifische Werte. Das Gleiche gilt für den optionalen Verkettungsoperator (?.), der nützlich ist, um auf eine Eigenschaft eines Objekts zuzugreifen, das null oder undefined sein könnte. Indem man sie kombiniert, kann man sicher auf eine Eigenschaft eines Objekts zugreifen, das nullish sein könnte und einen Standardwert bereitstellen, wenn es so ist.
| ECMAScript® 2027 Language Specification # prod-CoalesceExpression |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.