Heim > Web-Frontend > js-Tutorial > Warum zeigt die ES6-Array-Destrukturierung ohne Semikolons unregelmäßiges Verhalten?

Warum zeigt die ES6-Array-Destrukturierung ohne Semikolons unregelmäßiges Verhalten?

DDD
Freigeben: 2024-10-24 06:23:30
Original
565 Leute haben es durchsucht

Why Does ES6 Array Destructuring with No Semicolons Exhibit Irregular Behavior?

ES6-Array-Destrukturierungsunregelmäßigkeit

Bei der Verwendung der ES6-Array-Destrukturierung tritt eine interessante Anomalie auf, wie im folgenden Codeausschnitt gezeigt:

<code class="javascript">let a, b, c;
[a, b] = ['A', 'B'];
[b, c] = ['BB', 'C'];
console.log(`a=${a} b=${b} c=${c}`);</code>
Nach dem Login kopieren

Erwartet: a=A b=BB c=C
Tatsächlich: a=BB b=C c=undefiniert

Analyse:

Die Hauptursache liegt im Fehlen von Semikolons, was durch die automatische Semikoloneinfügung (ASI) in JavaScript ermöglicht wird. In diesem speziellen Fall fügt ASI jedoch keine Semikolons ein, wie man es erwarten würde.

Der Code wird logisch wie folgt zerlegt:

<code class="javascript">let a = undefined, b = undefined, c = undefined;
[a, b] = (['A', 'B']
[(b, c)] = ['BB', 'C']);
console.log(`a=${a} b=${b} c=${c}`);</code>
Nach dem Login kopieren
  • [a, b] = …; ist die herkömmliche Destrukturierungszuweisung.
  • (…) = ['BB', 'C'] ist ein Zuweisungsausdruck, der zum Array ausgewertet wird.
  • ['A', 'B'] […] ist eine Eigenschaftsreferenz auf ein Array-Literal.
  • (b, c) verwendet den Kommaoperator, was zu c führt (was undefiniert ist).

Auflösung :

Um diese Besonderheit zu umgehen, ist es wichtig, am Anfang jeder Zeile, die mit (, [, /, , - oder `) beginnt, explizit Semikolons hinzuzufügen. Dieser Ansatz gewährleistet eine ordnungsgemäße Trennung der Anweisungen und beseitigt das unerwartete Verhalten.

Das obige ist der detaillierte Inhalt vonWarum zeigt die ES6-Array-Destrukturierung ohne Semikolons unregelmäßiges Verhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage