![見出し画像](https://assets.st-note.com/production/uploads/images/147680664/rectangle_large_type_2_3ae22ae96b0f7de0e80ea36be8744460.png?width=1200)
Java Scriptの基本その5 "use strict"を使おう
イントロダクション
JavaScriptにおいて、"use strict"という宣言をコードの先頭に書くことで、厳密モード(Strict Mode)を有効にすることができます。このモードを使うことで、コードの安全性やパフォーマンスを向上させることができます。本記事では、"use strict"を使うべき理由を具体的に解説します。
1. エラーチェックの強化
通常のモードでは見逃されがちなエラーを、厳密モードでは厳しくチェックします。例えば、未宣言の変数を使用すると通常モードではグローバル変数として自動的に定義されますが、厳密モードではエラーになります。
例:
"use strict";
x = 10; // エラー: x is not defined
これにより、変数のスコープ管理が徹底され、意図しないグローバル変数の作成を防ぐことができます。
2. セキュリティの向上
厳密モードでは、セキュリティリスクを減少させるために、いくつかの制限が追加されます。例えば、eval関数を使って新しい変数や関数を定義することが制限されます。
例:
"use strict";
eval("var x = 2;");
console.log(x); // エラー: x is not defined
このように、厳密モードではevalの使用が制限されるため、コードインジェクション攻撃のリスクが低減されます。
3. 予約語の保護
厳密モードでは、将来のJavaScriptバージョンで予約される可能性のある単語の使用が禁止されます。これにより、将来のバージョンへの互換性が保たれます。
例:
"use strict";
var implements = 5; // エラー: Unexpected strict mode reserved word
このように、厳密モードを使うことで、将来のJavaScriptのバージョンアップに伴うコードの変更を最小限に抑えることができます。
4. 不正確なthisの防止
厳密モードでは、thisの値が明確に定義されます。関数内でthisが未定義の場合、通常モードではグローバルオブジェクト(ブラウザではwindow)を指しますが、厳密モードではundefinedになります。
例:
"use strict";
function myFunction() {
console.log(this); // undefined
}
myFunction();
この機能により、thisの意図しないバインドを防ぎ、コードの予測可能性が向上します。
5. パフォーマンスの向上
厳密モードでは、JavaScriptエンジンがコードの解析と実行を最適化しやすくなります。一部の最適化が可能になるため、コードの実行速度が向上する場合があります。例えば厳密モードを使用することで、不要な変数の作成やスコープチェーンの短縮が可能になり、結果としてパフォーマンスが向上することがあります。
まとめ
厳密モード("use strict")を使うことで、エラーチェックの強化、セキュリティの向上、予約語の保護、不正確なthisの防止、そしてパフォーマンスの向上など、多くの利点があります。これにより、より安全で効率的なJavaScriptコードを書くことができるようになります。
JavaScriptのコードをより堅牢でメンテナブルにするために、"use strict"を積極的に活用していきましょう。
この記事が気に入ったらサポートをしてみませんか?