In ES6 bietet die Array-Destrukturierung eine prägnante Syntax zum Extrahieren und Zuweisen von Werten aus Arrays. Bestimmte Konstrukte können jedoch zu unerwarteten Ergebnissen führen.
Der bereitgestellte Codeausschnitt wirft die Frage auf:
Warum führt dieser Code nach der Array-Destrukturierung zu unerwarteten Werten?
<code class="javascript">let a, b, c; [a, b] = ['A', 'B']; [b, c] = ['BB', 'C']; console.log(`a=${a} b=${b} c=${c}`);</code>
Erwartet: a=A, b=BB, c=C
Tatsächlich: a=BB, b=C, c= undefiniert
Antwort:
Das Problem liegt im Weglassen von Semikolons, die diese Zeilen normalerweise als unterschiedliche Anweisungen trennen würden. Ohne Semikolons wird der Code als einzelne Anweisung geparst und in einer anderen Reihenfolge ausgewertet:
<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>
Um solche Fehlinterpretationen zu vermeiden und eine korrekte Auswertung sicherzustellen, ist es wichtig, am Anfang jeder Zeile, die mit (, [, /, , - oder `.
) beginnt, explizit Semikolons einzufügenDas obige ist der detaillierte Inhalt vonWarum führt die Array-Destrukturierung in ES6 zu unerwarteten Werten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!