【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

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

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

JavaScriptの学習におすすめ書籍
1冊ですべて身につくJavaScript入門講座
総合評価
( 5 )
メリット
  • 誰でも分かるように嚙み砕いて説明してくれる
  • アニメーションの知識が深く学べる
  • 1つのWebサイトを作りながら学べる
楽天ブックス
¥2,794 (2024/04/21 02:09時点 | 楽天市場調べ)
\楽天ポイント5倍セール!/
楽天市場で探す
\ポイント5%還元!/
Yahoo!ショッピングで探す
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
\楽天ポイント5倍セール!/
楽天市場で探す
\ポイント5%還元!/
Yahoo!ショッピングで探す
目次

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アクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次