JavaScript

【JavaScript】Strictモードとは?Strictモードを有効にする方法

本記事では、JavaScriptのStrictモードについて解説しています。

JavaScriptの学習におすすめ参考書
改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

本書情報
出版社技術評論社
著者山田 祥寛
発売日2023/2/13
ページ数624ページ
レビュー
(Amazon)
(4件)
先輩くん
先輩くん
10万部突破したJavaScriptの本が大幅増補改訂し7年ぶりに発売されたよ!
後輩ちゃん
後輩ちゃん
最新の基本文法から、開発に欠かせない応用トピックまで学ぶことが出来るよ!

綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック

本書情報
出版社オライリージャパン
著者Dustin Boswell / Trevor Foucher
発売日2012/6/23
ページ数260ページ
レビュー
(Amazon)
(620件)
先輩くん
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
後輩ちゃん
10以上前の書籍ですが、内容は今でも役に立つものばかりです!

Strictモードとは?

JavaScriptのStrictモード(厳格モード)とは、非推奨の書き方などを検出しエラーで教えてくれます。StrictモードがないJavaScriptでは、開発者が非推奨の書き方を覚えておく必要があり負担がかかりました。

また、Strictモードは未然に非推奨の書き方を防げるだけではなく「Strictモードを使用していないコードより高速に実行できる可能性がある」などのメリットがあります。

Strictモードによる制限を詳しく知りたい方は、MDNをご参照ください。

Strictモードを有効化する方法

Strictモードをコード全体で有効化する方法

先輩くん

Strictモードをコード全体で有効化する書き方は以下のとおりだよ!

"use strict";
// 以下にコードを記述

「”use strict”」をファイルの一番先頭にセットします。これで、コード全体にStrictモードが適用されます。

Strictモードの制限に、変数宣言をする際は必ず「var・let・const」のいずれかを使用しなくてはというルールがあるので、それを無視してコードを書いてみましょう。

"use strict";
str = "Hello"; // => Uncaught ReferenceError: str is not defined

「Uncaught ReferenceError: str is not defined」とエラーが出力されました。これは、Strictモードをセットしていない時には出ないエラーなので、制限が掛かっていることが分かります。

Strictモードに対応していないコードがあるのに、全体で有効化にしてしまうと正しく動作されない場合がありますので注意してください。

Strictモードを一部の関数にのみ有効化する方法

先輩くん

Strictモードを一部の関数にのみ有効化する書き方は以下のとおりだよ!

function fnName() {
  "use strict";
  // 以下にコードを記述
}

セットしたい関数ブロックの先頭に「”use strict”」をセットします。これで、セットした関数にだけStrictモードが適用されます。

先輩くん

Strictモードが正しく反映されているか確認してみましょう!

str1 = "おはようございます!";

function sampleFn() {
  "use strict";
  str2 = "こんにちは!"; // => Uncaught ReferenceError: str2 is not defined
}
sampleFn();

コード全体にStrictモードを適用した時は、str1もエラーの対象でしたが今回はstr2のみエラーが出力されています。このことから、コード全体ではなく一部の関数にだけStrictモードが適用されていることが分かります。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村