JavaScript 逆引き集 | モジュールトップでの strict(ESM はデフォルト)

JavaScript JavaScript
スポンサーリンク

モジュールトップでの Strict Mode(ESM はデフォルト)

JavaScript には Strict Mode(厳格モード) という「安全にコードを書くためのチェック機能」があります。
通常は 'use strict'; をファイルや関数の先頭に書いて有効化しますが、ES Modules(ESM)では自動的に Strict Mode が有効になります。
初心者は「モジュールとして書けば勝手に安全モードになる」と覚えると理解しやすいです。


基本のコード例(通常スクリプト)

// 通常のスクリプトでは明示的に書く必要がある
'use strict';

x = 10; // エラー: 変数宣言なしで代入できない
JavaScript

モジュールの場合(ESM)

// ファイルを ES Module として読み込む場合(例: <script type="module">)
export function sum(a, b) {
  return a + b;
}

x = 10; // エラー: ESM は自動的に strict mode
JavaScript
  • ESM では 'use strict'; を書かなくても常に Strict Mode。
  • モジュールトップ(ファイル全体)に適用される。

よく使うテンプレート集

ブラウザでの利用

<script type="module">
  import { sum } from './math.js';
  console.log(sum(2, 3));
</script>
JavaScript
  • type="module" を指定すると、そのファイルは自動的に Strict Mode。

Node.js での利用

// package.json に "type": "module" を設定すると ESM 扱い
export const greet = (name) => `Hello, ${name}`;
JavaScript

例題: Strict Mode の効果を確認

// math.js (ESM)
export function add(a, b) {
  return a + b;
}

// main.js (ESM)
import { add } from './math.js';

value = 100; // エラー: Strict Mode が自動で有効
console.log(add(2, 3));
JavaScript
  • 効果: ESM では暗黙のグローバル変数が禁止される。

実務でのコツ

  • ESM を使えば自動で安全: 'use strict'; を書く必要がない。
  • 古いスクリプトでは明示的に書く: ES5 以前や非モジュールスクリプトでは 'use strict'; を忘れずに。
  • モジュールは常に Strict Mode: なので「安全な書き方」が前提になる。

ありがちなハマりポイントと対策

  • 'use strict'; を書いても無駄ではない: ESM では不要だが、書いても害はない。
  • 古いブラウザや環境: モジュール対応がない場合は 'use strict'; を明示する必要あり。

練習問題(Strict Mode の確認)

// ESM ファイル
export function test() {
  undeclared = 123; // Strict Mode なのでエラー
  return undeclared;
}

test();
JavaScript

直感的な指針

  • 通常スクリプト → 'use strict'; が必要。
  • ESM → 自動で Strict Mode。
  • モジュールトップに書かなくても安全モード。
  • 初心者は「モジュールなら安全」と覚えると楽。

これを覚えれば「モジュールを使うだけで安全なコード」が書けるようになり、余計なバグを防げます。

タイトルとURLをコピーしました