PHPでコーディングするときは「===」とか「!==」を結構使う。具体的には以下のような感じ。
if (foo() === true) { echo 'OK'; } else { echo 'NG'; }
fooという関数の戻り値が正真正銘のtrueの時には、という挙動にしたいためにこうなる。
一方でJavaScriptのコーディングをするときには、あまり「===」とか「!==」を使わない。あくまで自分自身の問題だけど、世間的にはJavaScriptでも型比較をよくするものだろうか。因みにprototype.jsの1.4では「!==」が1つ見つかっただけで、他は全て「==」と「!=」だった。
JavaScriptでも
if (0) { alert("true"); } else { alert("false"); }
とすれば「false」と表示されるし、0以外の数値なら「true」と表示されるので、感覚的には近いはずなんだけど(ちゃんと型比較しないと意図した結果にならない可能性があるという意味で)。
Javaだとそもそも型(というより参照先か)が同じでないと「==」にtrueが返ってくることはないし、Perl(全然詳しくないけれど)だと、確か数値は「==」で文字列は「eq」みたいな感じで演算子ごと区別されていた気がするので、こうゆうこと考えたことすらない。
何でPHPだとよく「===」とか「!==」を使ってしまうのだろうか。単なる癖かな。