【Javascript】のstrictモードに関して。

Javascriptにはstrictモードというものが存在しているらしい。
strictモードを有効にするとより構文のチェックが厳しくなるので、今まで動作していたスクリプトでもエラーとなってしまう可能性がある。
非strictとの違いはざっと下記の通り。

非strict strict
宣言されていない変数への代入 グローバル変数が作成される エラー
書込み不可の変数への代入
書き込み不可プロパティへの代入
何も起きない エラー
削除不可のプロパティの削除 何も起きない エラー
プロパティ名の重複 最後に宣言したものがプロパティの値となる エラー
関数の引数名の重複 重複した引数がそれより前にある同名の引数を隠す エラー
8進数標記 8進数として処理される エラー

※さらなる詳細はscriptモードでググるべし。

Javascriptのソースコードの先頭行に下記を記述すると、strictモードになる。

'use strict';

※いかなる文字列よりも前に記述していなければならないので注意。

また特定の関数内部のみに適用することも可能。

function hoge() {
	'use strict';
	console.log('hoge');
}

的な感じ。

厳密にJSを書きたい時とかに便利だね。