Dans ES6, la déstructuration de tableaux fournit une syntaxe concise pour extraire et attribuer des valeurs à partir de tableaux. Cependant, certaines constructions peuvent conduire à des résultats inattendus.
L'extrait de code fourni soulève la question :
Pourquoi ce code entraîne-t-il des valeurs inattendues après la déstructuration du tableau ?
<code class="javascript">let a, b, c; [a, b] = ['A', 'B']; [b, c] = ['BB', 'C']; console.log(`a=${a} b=${b} c=${c}`);</code>
Attendu : a=A, b=BB, c=C
Réel : a=BB, b=C, c= undefined
Réponse :
Le problème réside dans une omission de points-virgules, qui sépareraient normalement ces lignes en tant qu'instructions distinctes. Sans points-virgules, le code est analysé comme une seule instruction et évalué dans un ordre différent :
<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>
Pour éviter de telles interprétations erronées et garantir une évaluation correcte, il est essentiel d'inclure explicitement des points-virgules au début de chaque ligne commençant par (, [, /, , - ou `.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!