Firefoxにてabout:configを実行

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の乱用
などの問題を発見できる。

<私の好きなサイ本>

JavaScript 第6版