参照エラー: 初期化前に字句宣言 'X' にアクセスできません - JavaScript | MDN から、無効なインポートの例があります:
a.js
(エントリモジュール):
b.js
:
MDN の説明:
これは、モジュールをインポートするということは、モジュールのコードを import ステートメントの行に埋め込むことを意味すると理解しています。つまり、この例では、インポートされた変数
a
がアクセスされますが、初期化されません。これは、a.js
の評価が現在のモジュールb.js## によって評価されるためです。 # ブロック。
a.js はコンパイルすると次のようになります:
リーリー
a.js の行を並べ替えても結果が変わらないため、これをテストする方法がわかりません。
P粉1658237832023-09-17 00:53:49
インポートされたモジュールのコードは、単に埋め込まれる (「貼り付けられる」) だけでなく、別のクロージャに存在します。これは確かに単純化しすぎですが、export
ステートメントとその return
ステートメントを比較して、モジュールを関数と比較しました。
ただし、不要な行を削除すると (ローカル変数を設定するだけで、その後破棄されます)、機能します。