JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptの「use strict」とは?厳格モードの役割とその理由をわかりやすく解説

「use strict」とは何か

「use strict」はJavaScriptにおけるディレクティブ(指令文)の一種で、文字列リテラルとして記述される特別な表現です。JavaScript 1.8.5(ECMAScript 5)で導入されたこの構文は、その名の通り、コードを厳格モード(strict mode)で実行することを宣言する役割を持ちます。

厳格モードを有効にすると、これまで黙って許されていた「問題のある書き方」がエラーとして検出されるようになります。これにより、バグの早期発見や安全なコードの作成につながります。

厳格モードを宣言する方法

厳格モードを宣言するには、コードの先頭に「use strict」というキーワードを追加するだけです。

  • スクリプト全体に適用する場合: scriptタグ内の冒頭(グローバルスコープ)に記述します。
  • 関数単位で適用する場合: 関数本体の最初の行に記述すると、その関数内のみ厳格モードが有効になります。

サンプルコード

<!DOCTYPE html>
<html>
   <body>
      <p>変数を使用しているのに宣言し忘れているため、エラーが発生します</p>
      <p>F8キーを押すとエラーを確認できます。</p>
      <script>
          "use strict";
          a = 1;
      </script>
   </body>
</html>

上記の例では、変数 avarlet を使わずに代入しています。通常モードであれば暗黙的にグローバル変数が生成されてしまいますが、厳格モードではReferenceErrorがスローされ、ミスに即座に気づくことができます。

厳格モードを使うメリット

  • 宣言忘れによる意図しないグローバル変数の生成を防止できる
  • 読み取り専用プロパティへの代入など、サイレントに失敗していた操作がエラーになる
  • 重複した引数名や予約語の不適切な使用が禁止される
  • this の挙動がより予測しやすくなり、安全なコードを書きやすい

このように「use strict」は、潜在的なバグを開発段階で明確にするための重要な仕組みです。現代のJavaScript開発では、ESモジュールが自動的に厳格モードで動作するため、多くの場面で標準的に適用されています。

  1. JavaScriptのMath.asinh()とMath.acosh()関数の使い方を徹底解説

    Math.asinh() と Math.acosh() は、それぞれ数値の双曲線逆正弦(アークハイパボリックサイン)と双曲線逆余弦(アークハイパボリックコサイン)を求めるための関数です。これらは Math オブジェクトの静的メソッドであるため、Math オブジェクトのインスタンスを作成して呼び出すのではなく、常に Math.asinh() や Math.acosh() の形式で直接使用します。なお、両関数とも ECMAScript 2015(ES6)で追加された比較的新しいメソッドです。Math.asinh() の使い方Math.asinh() メソッドは、引数に指定した数値の双曲線逆正弦を求

  2. JavaScriptでのSentryの使い方とは?主な機能をわかりやすく解説

    Sentryとは?JavaScript開発を支えるデバッグ・監視ツールSentryは、本番環境(プロダクション)で稼働しているコードを追跡できる、JavaScript向けの総合的なデバッグ・監視ツールパッケージです。開発環境では再現しないエラーや、ユーザーの端末上でのみ発生する不具合を効率的に把握できるため、Webアプリケーションの品質向上に欠かせない存在となっています。Sentryが提供する主な機能は以下の通りです。1. 環境情報と使用状況の記録によるバグ再現エラー発生時のOS、ブラウザ、デバイス、URLなどの環境情報やユーザーの操作状況を自動的に記録します。これにより、報告だけでは再現が難