本記事では、JavaScriptのStrictモードについて解説しています。
- 誰でも分かるように嚙み砕いて説明してくれる
- アニメーションの知識が深く学べる
- 1つのWebサイトを作りながら学べる
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
変数名/関数名にもう悩まない!
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
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モードを一部の関数にのみ有効化する書き方は以下のとおりだよ!
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モードが適用されていることが分かります。