5月 07, 2021 JavaScript

JavaScript のStrict(厳格)モード

Strict(厳格)モードとは

ECMAScript 5 で、Strict(厳格モード)が導入されました。ざっくりというと、より厳格な構文を要求し、バグにつながるような記述をしたときに、例外(エラー)が発生するようにできるモードです。記述は簡単で、Strictモードを開始したい箇所に次の1行を書きます。

"use strict";

// または、

'use strict';

この記述を注意深く見ると、ダブルクオートまたはシングルクオートで囲まれた文字列リテラルになっていますね。想像ですが、これだと Strictモードに対応していない古い環境でも例外を起こさず、実害が出ないというメリットがありそうです。

Strictモードで何が起きるのか

もっとも多いケースは、未宣言の変数の使用に対する例外でしょう。非Strictモードでは、変数を宣言しなくても使うことができます。たとえば、次にような TYPO を含むコードはどうでしょうか。

let date=3;

if (data==3) {
    document.wrileln("dateは3です。")
}

dateと書くべきところをdataとTYPOしています。しかし、このコードは非Strictモードでは一見動いているように見えてしまします。もちろん、このようなシンプルな例では、すぐに気づくかもしれません。しかし、もっと大きなプログラムの中ならどうでしょうか。場合によっては、「なんとなく動いているけれど、たまにおかしくなる」プログラムが出来上がってしまうかもしれません。Strict モードならしっかり例外が出てくれて、発見できます。

"use strict";
let date=3;

if (data==3) {
    document.wrileln("dateは3です。")
}

Strict モードを使おう

そんなわけで、JavaScriptを書くときには、特別な理由がない限りStrict モードを使いましょう。

  • この記事は、ECMAScript 2015(ES6) を前提に書いています。古い実装では、異なる場合があります。