Logical AND assignment (&&=)
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 Logical AND Assignment (&&=
) Operator wertet nur den rechten Operanden aus und weist dem linken Operanden zu, wenn der linke Operand truthy ist.
Probieren Sie es aus
Syntax
x &&= y
Beschreibung
Logical AND Assignment reduziert die Auswertung, was bedeutet, dass x &&= y
äquivalent zu x && (x = y)
ist, außer dass der Ausdruck x
nur einmal ausgewertet wird.
Es wird keine Zuweisung vorgenommen, wenn die linke Seite nicht truthy ist, aufgrund der Reduzierung der Auswertung des Logical AND Operators. Zum Beispiel wirft das Folgende keinen Fehler, obwohl x
eine const
ist:
const x = 0;
x &&= 2;
Auch das Folgende würde den Setter nicht auslösen:
const x = {
get value() {
return 0;
},
set value(v) {
console.log("Setter called");
},
};
x.value &&= 2;
Tatsächlich wird y
gar nicht ausgewertet, wenn x
nicht truthy ist.
const x = 0;
x &&= console.log("y evaluated");
// Logs nothing
Beispiele
Verwendung von Logical AND Assignment
let x = 0;
let y = 1;
x &&= 0; // 0
x &&= 1; // 0
y &&= 1; // 1
y &&= 0; // 0
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-assignment-operators |
Browser-Kompatibilität
BCD tables only load in the browser