Nullish coalescing-Zuweisung (??=)
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.
Der Nullish coalescing-Zuweisungsoperator (??=
), auch bekannt als logischer Nullish-Zuweisungsoperator, wertet nur den rechten Operanden aus und weist ihn dem linken Operanden zu, wenn dieser nullish ist (null
oder undefined
).
Probieren Sie es aus
const a = { duration: 50 };
a.speed ??= 25;
console.log(a.speed);
// Expected output: 25
a.duration ??= 10;
console.log(a.duration);
// Expected output: 50
Syntax
x ??= y
Beschreibung
Die Nullish coalescing-Zuweisung short-circuited, was bedeutet, dass x ??= y
äquivalent zu x ?? (x = y)
ist, mit der Ausnahme, dass der Ausdruck x
nur einmal ausgewertet wird.
Es wird keine Zuweisung vorgenommen, wenn die linke Seite nicht nullish ist, aufgrund des Short-Circuiting des Nullish coalescing-Operators. Zum Beispiel wird der folgende Code keinen Fehler auslösen, obwohl x
als const
deklariert ist:
const x = 1;
x ??= 2;
Ebenso würde im folgenden Beispiel der Setter nicht ausgelöst:
const x = {
get value() {
return 1;
},
set value(v) {
console.log("Setter called");
},
};
x.value ??= 2;
Tatsächlich wird y
überhaupt nicht ausgewertet, wenn x
nicht nullish ist.
const x = 1;
x ??= console.log("y evaluated");
// Logs nothing
Beispiele
Verwendung der Nullish coalescing-Zuweisung
Sie können den Nullish coalescing-Zuweisungsoperator verwenden, um Standardwerte für Objekteigenschaften anzuwenden. Im Vergleich zur Verwendung von Destructuring und Standardwerten wendet ??=
den Standardwert auch an, wenn die Eigenschaft den Wert null
hat.
function config(options) {
options.duration ??= 100;
options.speed ??= 25;
return options;
}
config({ duration: 125 }); // { duration: 125, speed: 25 }
config({}); // { duration: 100, speed: 25 }
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # sec-assignment-operators |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nullish coalescing assignment ( x ??= y ) |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support