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

js
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:

js
const x = 0;
x &&= 2;

Auch das Folgende würde den Setter nicht auslösen:

js
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.

js
const x = 0;
x &&= console.log("y evaluated");
// Logs nothing

Beispiele

Verwendung von Logical AND Assignment

js
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

Siehe auch