ECMAScript 5からは宣言を強制する事が可能と成りました。
以下の記述をすると宣言を強制されます。
"use strict";
例えば、 var hoge; などと事前に宣言しないで変数を使用するとエラーとなります。
"use strict"; hoge = 10;
hoge = 10; alert(hoge); function test() { "use strict"; fuga = 10; alert(fuga); } test();
hoge はエラーになりませんが fuga はエラーとなります。あくまで影響が有るのは "use strict"; が記述されたの同じスコープ内のみです。
なお、 "use strict"; は宣言を強制する為のものではなく、あくまで厳密な処理をするモードへの切り替えの様なものです。その一環として「宣言の強制」が有る為、この様な動作となります。
その為、「宣言の強制」以外にも 010 などの8進数の記述も使えなくなります。
(例)
"use strict"; var hoge = 010+1;
詳しい情報はこちらを参照下さい。
Strict mode - MDC Docs
https://developer.mozilla.org/en/JavaScript/Strict_mode
なお、 "use strict"; の記載が有ったとしてもECMAScript 5以前の環境ではただの文字列が記述されているだけなので古い環境で動作させても、変な副作用が起こる事も有りません。
参考書籍
JavaScriptパターン ―優れたアプリケーションのための作法
- 作者: Stoyan Stefanov,豊福剛
- 出版社/メーカー: オライリージャパン
- 発売日: 2011/02/16
- メディア: 大型本
- 購入: 22人 クリック: 907回
- この商品を含むブログ (76件) を見る
関連情報
John Resig - ECMAScript 5 Strict Mode, JSON, and More
http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/