- 古いブラウザには読ませない、モジュールロード構文 : <script type="module" src="パス"></script>
- 新しいブラウザには読ませない、非モジュールロード構文 : <script nomodule src="パス"></script>
- 新旧共通の非モジュールロード構文: <script src="パス"></script>
モジュールコードはモジュールオブジェクト=関数フレーム(スタックではなくヒープだが)内で実行される。そのフレームへの参照があるかぎりモジュールオブジェクトは生き残るが参照がないとモジュールオブジェクトは実行された後で消える。
非モジュールコードは、いわゆるトップレベルで実行されて、大域環境=大域オブジェクトのコンテキスト内で実行される。定義された関数・変数は、大域環境内に残る。
モジュールコードをインラインで書くこともできる。
<script type="module" > // モジュールコード </script>