Nullish Coalescing in JavaScript: Ein praktischer UK-Leitfaden

17. August 2026

Master ?? operator in JavaScript. UK examples, vs ||, pitfalls, browser support. Essential Ratgeber für 2026.

Was ist Nullish Coalescing?

Der Nullish Coalescing Operator (??) ist eine JavaScript-Funktion, die mit ES2020 eingeführt wurde und eine saubere Möglichkeit bietet, auf einen Standardwert zurückzugreifen, wenn der linke Ausdruck null oder undefined ist. Im Gegensatz zum logischen ODER-Operator (||), der alle falsy-Werte als Auslöser behandelt, greift ?? nur bei nullish-Werten ein. Das bedeutet, du kannst gefahrlos Standardwerte für Zahlen, Boolsche Werte oder Strings verwenden, die legitimerweise 0, false oder ein leerer String sein können. Zum Beispiel könnte das Festlegen der Standardregion eines britischen Nutzers als `const region = user.region ?? 'GB';` geschrieben werden – wenn `user.region` undefined ist, erhältst du 'GB'; wenn es ein leerer String ist, bleibt dieser Wert erhalten, was in realen Anwendungen oft das gewünschte Verhalten ist.

?? vs ||: Wesentliche Unterschiede

Der logische ODER-Operator (||) gibt den rechten Operanden zurück, wenn der linke ein Falsy-Wert ist – einschließlich 0, '', false, NaN und null. Dies kann subtile Fehler verursachen. Stellen Sie sich eine britische E-Commerce-Website vor: `const discount = value || 0.2;` – wenn `value` 0 ist, weil es keinen Rabatt gibt, ersetzt `||` ihn fälschlicherweise durch 20 %. Mit `??` würden Sie `const discount = value ?? 0.2;` schreiben, und 0 bleibt erhalten, da sie nicht nullish ist. Diese Unterscheidung ist entscheidend, wenn Sie mit APIs arbeiten, die numerische Werte wie `0` als gültige Antwort zurückgeben können. Indem Sie `??` statt `||` verwenden, stellen Sie sicher, dass Ihr Code Standardwerte nur dann anwendet, wenn ein Wert wirklich fehlt – nicht bloß, wenn er lediglich falsy ist.

UK-spezifische Anwendungsfälle

In der britischen Webentwicklung zeigt Nullish Coalescing seine Stärke bei Einstellungen und Konfiguration. Zum Beispiel möchten Sie beim Laden des Mehrwertsteuersatzes eines Benutzers von einer API standardmäßig 20 % (die übliche britische Mehrwertsteuer) verwenden, aber nur, wenn nichts zurückgegeben wird. Durch die Verwendung von ?? bleibt ein 0 %-Satz für steuerbefreite Artikel erhalten. Ähnlich verhält es sich mit Versandkosten: Eine Schwelle für kostenlosen Versand könnte bei 0 £ liegen – mit ?? bleibt ein Wert von 0 gültig. Ein weiteres praktisches Beispiel ist die Behandlung von Cookie-Einstellungen oder geografischen Standardwerten: `const currency = prefs.currency ?? 'GBP';`. Es ist auch perfekt für Fallback-Texte im britischen Englisch gegenüber amerikanischem Englisch: `const label = translations.title ?? 'Checkout';` wobei ein leerer String keinen Fallback auslösen sollte.

Kombination mit Optional Chaining

Optional chaining (?.) und nullish coalescing (??) are a powerful duo because they address two sides of the same problem: safely accessing nested properties und providing defaults. In modern JavaScript, you might encounter code like const street = user?.address?.street ?? 'No address provided';. This avoids the dreaded 'Cannot read properties of undefined' error. für a UK-based SaaS app, you could fetch a user's business details from a nested object und fallback to a generic location: const office = user?.company?.address?.city ?? 'London';. Used together, these operators make Ihre code more robust und readable, reducing the clutter of multiple ternary checks or `if` statements.

Browserunterstützung und Best Practices

Ab 2026 wird Nullish Coalescing in allen modernen Browsern und Node.js 14 und höher vollständig unterstützt. Wenn Sie auf ältere Umgebungen abzielen, benötigen Sie einen Transpiler wie Babel oder TypeScript (3.7+), um es herunterzukompilieren. Eine wichtige Best Practice ist, ?? nicht ohne Klammern mit || oder && zu mischen, da JavaScript dies aus Sicherheitsgründen nicht erlaubt: `a || b ?? c` ist ein SyntaxError. Setzen Sie sie in Klammern: `(a || b) ?? c`. Verwenden Sie außerdem Linting-Regeln wie die ESLint-Regel `no-mixed-operators`, um Probleme frühzeitig zu erkennen. In britischen Teams verbessert die Verwendung von ?? die Code-Klarheit, insbesondere bei der Verarbeitung von REST-API-Antworten, die null-Werte enthalten können, und stellt damit sicher, dass sich Ihre Anwendungen vorhersehbar verhalten.

FAQ

Man kann ?? nicht direkt mit || oder && mischen, ohne Klammern zu verwenden. Die JavaScript-Syntax verbietet dies, um Mehrdeutigkeiten zu vermeiden. Zum Beispiel ist `a || b ?? c` ein SyntaxError. Um sie zu kombinieren, muss man einen Operator in Klammern setzen, wie z. B. `(a || b) ?? c`. Dadurch wird sichergestellt, dass die beabsichtigte Logik klar ist und unerwartetes Verhalten vermieden wird.

Neueste Ratgeber