strict モード対策
Firefox の JavaScript にはコードを厳格に解釈する strict モードがある。
[about:config] - [javascript.options.strict = true]
この状態で、疑わしいコードを実行するとエラーコンソールに警告が出る(ロギングにつられてパフォーマンスも大きく落ちる)。
例えば、if 内での代入や、関数からの戻り値が有ったり無かったりするケースなど。
function() { if (a = 1) { return 1; } // return }
if 内での代入は、()で囲むことで警告を抑止できるし、
if ( (a = 1) ) {} // 警告が出なくなる
return し忘れは適切に補完することで回避できる。
function() { if (a) { return 1; } return 0; }
警告付きのコードを公開し続けると、ちょっとまずいことになる。
YUI compressor を使うと、strict モードでは検出されない
- 未定義変数の参照
- 未使用変数の検出
- 変数の再定義
- varの乱用
などの問題を発見できる。