NULL-sicherer Eigenschaftszugriff und bedingte Zuweisung in EcmaScript 6
Die Möglichkeit, ohne Ursache auf Eigenschaften von Objekten zuzugreifen, die möglicherweise null oder undefiniert sind Fehler werden als nullsicherer Eigenschaftszugriff bezeichnet. Die bedingte Zuweisung hingegen ermöglicht die Zuweisung von Werten nur, wenn bestimmte Bedingungen erfüllt sind.
In EcmaScript 6 unterstützen mehrere Operatoren sowohl den nullsicheren Eigenschaftszugriff als auch die bedingte Zuweisung.
Optionale Verkettung (?.)
Die in ES2020 eingeführte optionale Verkettung ermöglicht den Zugriff auf Eigenschaften von Objekten, die möglicherweise vorhanden sind ausnahmslos null oder undefiniert sein. Es verwendet das ?. Operator, der undefiniert zurückgibt, anstatt einen Fehler auszulösen:
const query = succeed => (succeed ? { value: 4 } : undefined); let value = 3; for (let x of [true, false]) { value = query(x)?.value; } console.log(value); // Output: 4
Nullish Coalescing Assignment (??=)
Der Nullish Coalescing Assignment Operator (??=) Weist einer Variablen nur dann einen Wert zu, wenn der aktuelle Wert null oder undefiniert ist. Es gibt das Ergebnis der Zuweisung zurück:
let value = 3; value ??= query(false)?.value; console.log(value); // Output: 3
Kompatibilität
Optionale Verkettung wird in den wichtigsten modernen Browsern und Node.js-Versionen unterstützt, während Nullish-Coalescing-Zuweisungen unterstützt werden in Browsern und Node.js v14 . Erwägen Sie für ältere Umgebungen die Verwendung von Babel oder einer Polyfüllung.
Alternativen
Vor diesen Operatoren gab es folgende Problemumgehungen:
Fazit
Optionale Verkettung und Nullish-Coalescing-Zuweisung bieten leistungsstarke Werkzeuge für einen präzisen, nullsicheren Eigenschaftszugriff und bedingte Zuweisung in EcmaScript 6. Sie vereinfachen den Code, verbessern die Lesbarkeit und reduzieren das Fehlerpotenzial.
Das obige ist der detaillierte Inhalt vonWie verbessern optionale Verkettung und Nullish Coalescing den nullsicheren Eigenschaftszugriff und die bedingte Zuweisung in ES6?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!