Heim >Web-Frontend >js-Tutorial >Wie verbessern optionale Verkettung und Nullish Coalescing bedingte Zuweisungen in JavaScript?

Wie verbessern optionale Verkettung und Nullish Coalescing bedingte Zuweisungen in JavaScript?

Susan Sarandon
Susan SarandonOriginal
2024-12-21 01:27:10847Durchsuche

How Do Optional Chaining and Nullish Coalescing Improve Conditional Assignments in JavaScript?

Optionale Verkettung und bedingte Zuweisung in EcmaScript 6

Um bedingte Zuweisungen und nullsicheren Eigenschaftenzugriff zu vereinfachen, führt EcmaScript 6 mehrere ein Operatoren zur Verbesserung der Codeeffizienz und Lesbarkeit.

Optionale Verkettung (ECMAScript 2020)

Optionale Verkettung, dargestellt durch das ?. -Operator ermöglicht das sichere Durchlaufen von Nullable-Eigenschaften. In Ihrem Beispiel können Sie Zeile 4 durch optionale Verkettung vereinfachen:

const query = succeed => (succeed ? { value: 4 } : undefined);

let value = 3;
for (let x of [true, false]) {
  value = query(x)?.value;
}
// Output: 4

Nullish Coalescing Assignment (ECMAScript 2021)

Für bedingte Zuweisungen der Nullish Coalescing-Zuweisungsoperator ??= kann verwendet werden. Der Wert wird dem linken Operanden nur dann zugewiesen, wenn dieser Operand null oder undefiniert ergibt. Dadurch werden Try-Catch-Blöcke oder explizite Nullprüfungen überflüssig:

query(x)?.value ??= value;

Überlegungen und Alternativen

  • Zielkompatibilität: Optionale Verkettung und Nullish-Coalescing-Zuweisung werden in modernen Browsern und EcmaScript 2020 und 2021 unterstützt. jeweils. Verwenden Sie „Kann ich verwenden“ (https://caniuse.com/), um die Kompatibilität für bestimmte Umgebungen zu überprüfen.
  • Babel-Plugin: Für ältere Umgebungen kann ein Babel-Plugin zum Transpilieren verwendet werden diese Operatoren in kompatible Syntax.
  • CoffeeScript-Alternative: Das CoffeeScript-Idiom query(x).value if query(x)?.value? erzielt ein ähnliches Verhalten, beinhaltet jedoch Wiederholungen.
  • Zugriff auf Objekteigenschaften: In Fällen, in denen Sie eine Objekteigenschaft festlegen, stellt der Operator ??= sicher, dass die Zuweisung nur erfolgt, wenn die Eigenschaft nicht bereits zugewiesen ist . Dadurch werden unnötige Setter-Aufrufe vermieden.
  • Funktionsabstraktion: Eine Abstraktion der Logik in eine Funktion ist nicht möglich, da bedingte Zuweisungen nicht rein in Funktionsaufrufen ausgedrückt werden können.

Das obige ist der detaillierte Inhalt vonWie verbessern optionale Verkettung und Nullish Coalescing bedingte Zuweisungen in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn