ホームページ >ウェブフロントエンド >jsチュートリアル >ES6 で配列の分割により予期しない値が発生するのはなぜですか?
ES6 では、配列分割により、配列から値を抽出して割り当てるための簡潔な構文が提供されます。ただし、特定の構成では予期しない結果が生じる可能性があります。
提供されているコード スニペットでは次のような疑問が生じます:
なぜこのコードは配列の構造化後に予期しない値になるのですか?
<code class="javascript">let a, b, c; [a, b] = ['A', 'B']; [b, c] = ['BB', 'C']; console.log(`a=${a} b=${b} c=${c}`);</code>
期待値: a=A、b=BB、c=C
実際: a=BB、b=C、c=未定義
答え:
問題は、通常はこれらの行を個別のステートメントとして区切るセミコロンの省略にあります。セミコロンがない場合、コードは単一のステートメントとして解析され、次のように異なる順序で評価されます。
<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>
このような誤解を避け、正しい評価を保証するには、(、[、/、-、-、または `.
以上がES6 で配列の分割により予期しない値が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。