Javascript開発におけるStrictモード使用のすすめ
Web2016年12月26日
Javascriptの開発をStrictモードで開発を行う事で様々なメリットがあります。本記事ではJavascriptのStrictモードについて解説してみたいと思います。
JavasciprのStrictモードとは?
簡単に言えばJavasciptの次期バージョンに備えて、厳格化されたコーディングのみ許可・実行するモードです。コード内で「"use strict"」を宣言することでそのJavasciptはStrictモードとなります。
構文エラーなどひとつひとつが厳格に処理されるため、これまで検知できなかったようなエラーやコードの問題点を早期に発見しやすくなります。
また、非Strictモードよりも高速に実行が行われるため、パフォーマンス面でも大きなメリットがあります。
Strictモードを使用する主なメリット
- 構文レベルにおいて厳密な会社を行う為、構文エラー等のケアレスミスが防げる
- 「varキーワードを忘れた変数宣言を行ってしまったことによる、意図せぬグローバル変数の追加」などが防げる
- 今後の言語拡張においてStrictモードが前提となっている機能が存在するため、将来への備えになる
- 非対応環境(IE8、9などの古いIE)での副作用がない
非StrictモードとStrictモードの挙動比較
非Strict | Strict | |
---|---|---|
未宣言変数への代入 | グローバル変数が作成 | エラー |
書込不可プロパティへの代入 | 何も起きない | エラー |
書込不可変数への代入 | 何も起きない | エラー |
プロパティ名の重複 | 最後に宣言したものをプロパティの値であると解釈 | エラー |
削除不可のプロパティを削除 | 何も起きない | エラー |
8進数標記 | 8進数として処理 | エラー |
サンプルコード
無名関数全体にStrictモードを有効化
(function () {
"use strict";
//ここに処理を記述
})();
関数hogeのみにStrictモードを有効化
function hoge () {
"use strict";
//ここに処理を記述
}
Strictモード使用時の注意点
グローバルスコープでの "use strict"; 宣言は行わない
複数のjsファイルを使用している場合、Strictモードが意図しない範囲まで影響する可能性があるため、グローバルスコープでの宣言は行わないようにしましょう。
悪い例
"use strict";//グローバルスコープでStrictモードを宣言
(function () {
//ここに処理を記述
})();
まとめ
いまいちWeb業界に浸透しきっていないJavascriptのStrictモードですが、メリットが非常に大きいため積極的なご使用をおすすめいいたします。
StrictモードでJavascriptの開発を行う際は、ぜひ本記事をご参考にしていただけますと幸いです。