ActionScript3.0には次のような等価演算子がある。
== 等価 != 不等価 === 厳密な等価 !== 厳密な不等価
この"厳密な"というのは型変換をしないというもの。例えば数値としての5と文字列の"5"を比較したときに、等価となるのが通常の等価で、不等価となるのが厳密な等価。
ということで、このページ(厳密な等価演算子)にあるサンプルをwonderflでテスト。
var string1:String = "5"; var num:Number = 5; trace(string1 == num); // true trace(string1 === num); // false
ところがコンパイルエラー。文字列と数値は比較できなかった。
ウェブで検索してみたところ、どうやらエラーチェックがstrictモード、つまり厳密なエラーチェックではエラーとして扱われるみたい。
となると、strictモードでは厳密な等価(===)や厳密な不等価の演算子(!==)は何の意味があるんだろう。