Jetzt hat es volle Unterstützung in der neuesten Version von großen Browsern wie Chrome, Edge, Firefox, Safari etc. Hier ist der Vergleich zwischen dem Null-Operator und dem Nullish Coalescing Operator
const response = {
settings: {
nullValue: null,
height: 400,
animationDuration: 0,
headerText: '',
showSplashScreen: false
}
};
/* OR Operator */
const undefinedValue = response.settings.undefinedValue || 'Default Value'; // 'Default Value'
const nullValue = response.settings.nullValue || 'Default Value'; // 'Default Value'
const headerText = response.settings.headerText || 'Hello, world!'; // 'Hello, world!'
const animationDuration = response.settings.animationDuration || 300; // 300
const showSplashScreen = response.settings.showSplashScreen || true; // true
/* Nullish Coalescing Operator */
const undefinedValue = response.settings.undefinedValue ?? 'Default Value'; // 'Default Value'
const nullValue = response.settings.nullValue ?? ''Default Value'; // 'Default Value'
const headerText = response.settings.headerText ?? 'Hello, world!'; // ''
const animationDuration = response.settings.animationDuration ?? 300; // 0
const showSplashScreen = response.settings.showSplashScreen ?? true; // false
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 .