Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Logical OR 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.
DerLogical OR Zuweisungsoperator (||=) wertet nur den rechten Operanden aus und weist ihn dem linken zu, wenn der linke Operandfalsy ist.
In diesem Artikel
Probieren Sie es aus
const a = { duration: 50, title: "" };a.duration ||= 10;console.log(a.duration);// Expected output: 50a.title ||= "title is empty.";console.log(a.title);// Expected output: "title is empty."Syntax
x ||= yBeschreibung
Die Logical OR Zuweisungshort-circuiting, was bedeutet, dassx ||= y gleichbedeutend mitx || (x = y) ist, außer dass der Ausdruckx nur einmal ausgewertet wird.
Es erfolgt keine Zuweisung, wenn die linke Seite nicht falsy ist, aufgrund des Short-Circuitings desLogical OR Operators. Zum Beispiel wirft das folgende keinen Fehler, obwohlx eineconst ist:
const x = 1;x ||= 2;Ebenso würde das folgende nicht den Setter auslösen:
const x = { get value() { return 1; }, set value(v) { console.log("Setter called"); },};x.value ||= 2;Tatsächlich wird, wennx nicht falsy ist,y überhaupt nicht ausgewertet.
const x = 1;x ||= console.log("y evaluated");// Logs nothingBeispiele
>Standardinhalt festlegen
Wenn das "lyrics"-Element leer ist, wird ein Standardwert angezeigt:
document.getElementById("lyrics").textContent ||= "No lyrics.";Hier ist das Short-Circuiting besonders vorteilhaft, da das Element nicht unnötig aktualisiert wird und keine unerwünschten Nebeneffekte wie zusätzlicher Parsing- oder Rendering-Aufwand oder Verlust des Fokus verursacht werden.
Hinweis:Achten Sie auf den Wert, den die API zurückliefert, gegen die Sie prüfen. Wenn eine leere Zeichenfolge zurückgegeben wird (einfalsy Wert), muss||= verwendet werden, damit "Keine Lyrics." angezeigt wird, anstatt eines leeren Raums. Wenn die API jedochnull oderundefined im Fall von leerem Inhalt zurückgibt, sollte stattdessen??= verwendet werden.
Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-assignment-operators> |