Ja, und seine Vorschlag es Stufe 4 jetzt. Das bedeutet, dass der Vorschlag zur Aufnahme in den offiziellen ECMAScript-Standard bereit ist. Sie können es bereits in den aktuellen Desktop-Versionen von Chrome, Edge und Firefox verwenden, aber wir müssen noch ein wenig warten, bis diese Funktion browserübergreifende Stabilität erreicht.
Das folgende Beispiel veranschaulicht dieses Verhalten:
// note: this will work only if you're running latest versions of aforementioned browsers
const var1 = undefined;
const var2 = "fallback value";
const result = var1 ?? var2;
console.log(`Nullish coalescing results in: ${result}`);
Das vorherige Beispiel ist gleichbedeutend mit:
const var1 = undefined;
const var2 = "fallback value";
const result = (var1 !== null && var1 !== undefined) ?
var1 :
var2;
console.log(`Nullish coalescing results in: ${result}`);
なお Nullische Verschmelzung wird no Bedrohung falsy Werte, wie die ||
Operator getan hat (er prüft nur auf undefined
o null
Werte), daher wird der folgende Ausschnitt wie folgt funktionieren:
// note: this will work only if you're running latest versions of aforementioned browsers
const var1 = ""; // empty string
const var2 = "fallback value";
const result = var1 ?? var2;
console.log(`Nullish coalescing results in: ${result}`);
Für TypesScript-Anwender, die mit der TypeScript 3.7 ist diese Funktion jetzt ebenfalls verfügbar.
39 Stimmen
Anmerkung aus dem Jahr 2018:
x ?? y
Die Syntax befindet sich jetzt im Stadium 1 des Vorschlags - Nullische Verschmelzung4 Stimmen
Es gibt jetzt eine Babel-Plugin die genau diese Syntax enthält.
11 Stimmen
Anmerkung aus dem Jahr 2019: Jetzt ist der Status Stufe 3!
2 Stimmen
Anmerkung von später im Jahr 2019: Nullish Coalescing ist in TypeScript 3.7 verfügbar!
5 Stimmen
Hinweis ab Januar 2020: Der Nullish Coalescing Operator ist nativ in Firefox 72 verfügbar, der optionale Chaining Operator jedoch noch nicht.
6 Stimmen
Der nullische Koaleszenzoperator (
x ?? y
) und optionaler Verkettungsoperator (user.address?.street
) sind nun beide Stufe 4. Hier finden Sie eine gute Beschreibung, was das bedeutet: 2ality.com/2015/11/tc39-process.html#stage-4%3A-finished .