セミコロンを使用しない ES6 配列の分割で不規則な動作が発生するのはなぜですか?

DDD
リリース: 2024-10-24 06:23:30
オリジナル
483 人が閲覧しました

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

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=未定義

分析:

根本的な原因はセミコロンがないことにあり、これは JavaScript の自動セミコロン挿入 (ASI) 機能によって有効になります。ただし、この特定のケースでは、ASI は期待どおりにセミコロンを挿入しません。

コードは次のように論理的に分割されます:

<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>
ログイン後にコピー
  • [a, b] = …;
  • (…) = ['BB', 'C'] は、配列に評価される代入式です。
  • ['A', 'B'] […] は配列リテラルのプロパティ参照です。
  • (b, c) はカンマ演算子を使用し、結果は c (未定義) になります。

解決:

この特殊性を回避するには、(、[、/、-、-、または ` で始まるすべての行の先頭に明示的にセミコロンを追加することが重要です。このアプローチにより、ステートメントが適切に分離されます。予期しない動作を排除します。

以上がセミコロンを使用しない ES6 配列の分割で不規則な動作が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!