Heim >Web-Frontend >js-Tutorial >Wie vereinfachen optionale Verkettung und Nullish Coalescing den Zugriff auf Null-sichere Eigenschaften in JavaScript?
EcmaScript 6 bietet leistungsstarke Operatoren, um den Eigenschaftszugriff und die bedingte Zuweisung auf prägnante und effiziente Weise zu optimieren.
In älteren JavaScript-Versionen konnte die gewünschte Logik mithilfe von a erreicht werden try/catch-Block:
const query = succeed => (succeed ? { value: 4 } : undefined); let value = 3; for (let x of [true, false]) { try { value = query(x).value; } catch {} // Don´t assign if no .value } console.log(value); // Outputs: 4
Mit optionaler Verkettung kann diese Logik nun erheblich vereinfacht werden:
const query = succeed => (succeed ? { value: 4 } : undefined); let value = 3; for (let x of [true, false]) { value = query(x)?.value; // Assign only if `.value` exists } console.log(value); // Outputs: 4
Das ?. Der Operator prüft, ob query(x) ungleich Null und undefiniert ist, und greift erst dann auf die Value-Eigenschaft zu. Wenn query(x) null oder undefiniert ist, wird undefiniert zurückgegeben, ohne einen Fehler auszulösen.
Für nullfähige Werte kann der Nullish-Coalescing-Operator (??) verwendet werden:
const query = succeed => (succeed ? { value: 4 } : undefined); let value = 3; for (let x of [true, false]) { value ??= query(x).value; // Assign only if `value` is null or undefined } console.log(value); // Outputs: 4
Das ?? Der Operator vergleicht den linken Operanden mit null oder undefiniert und weist bei „true“ den rechten Operanden zu. In diesem Fall wird der Wert nur aktualisiert, wenn er ursprünglich null oder undefiniert war.
Beachten Sie, dass diese Operatoren in modernen Browsern unterstützt werden und aus Gründen der browserübergreifenden Kompatibilität mit Babel verwendet werden können.
Das obige ist der detaillierte Inhalt vonWie vereinfachen optionale Verkettung und Nullish Coalescing den Zugriff auf Null-sichere Eigenschaften in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!