Javascriptにはstrictモードというものが存在しているらしい。
strictモードを有効にするとより構文のチェックが厳しくなるので、今まで動作していたスクリプトでもエラーとなってしまう可能性がある。
非strictとの違いはざっと下記の通り。
| 非strict | strict | |
|---|---|---|
| 宣言されていない変数への代入 | グローバル変数が作成される | エラー |
| 書込み不可の変数への代入 書き込み不可プロパティへの代入 |
何も起きない | エラー |
| 削除不可のプロパティの削除 | 何も起きない | エラー |
| プロパティ名の重複 | 最後に宣言したものがプロパティの値となる | エラー |
| 関数の引数名の重複 | 重複した引数がそれより前にある同名の引数を隠す | エラー |
| 8進数標記 | 8進数として処理される | エラー |
※さらなる詳細はscriptモードでググるべし。
Javascriptのソースコードの先頭行に下記を記述すると、strictモードになる。
'use strict';
※いかなる文字列よりも前に記述していなければならないので注意。
また特定の関数内部のみに適用することも可能。
function hoge() {
'use strict';
console.log('hoge');
}
的な感じ。
厳密にJSを書きたい時とかに便利だね。