よく見かける落とし穴
しばしば、JavaScriptのコードで、
if (!!sie.p) { alert("pプロパティを発見"); }
というようなコードを書いていますが、正しくは、
if (!!sie.p || sie.p === 0) {
alert("pプロパティを発見");
}
if ("p" in sie) { alert("pプロパティを発見"); }
となります。pプロパティにもし、Number型の0や空文字列の""が入っていますと、IEにおいては、「!!」はfalseを返すわけです。私の失敗談として、ここにメモしておきます。
追記(2010年10月14日)
コメントでin演算子を使った方がよいとご指摘がありましたので、修正しました。ご指摘下さったos0xさん、ありがとうございました。