if(typeof window.somePropOrMethod !== "undefined"){ }
somePropOrMethodがのプロパティでwindowあり、その値が。以外のものであるかどうかを確認しますundefined。
[オブジェクトとそのプロトタイプチェーンを直接チェックする]
if(window.hasOwnProperty("somePropOrMethod")){ }
値に関係なく、オブジェクト自体に明示的somePropOrMethodに存在するかどうかをチェックします(#1とは異なります)
[オブジェクトを直接チェックするだけです]window
if("somePropOrMethod" in window){ }
値に関係なく、オブジェクト自体またはそのプロトタイプチェーンでsomePropOrMethod検出できるかどうかをチェックします(#1とは異なります)
[オブジェクトとそのプロトタイプチェーンを直接チェックします]
if(!!window.somePropOrMethod) { }
ここで行われるのは、の値を取得somePropOrMethodしてブール値に変換することです。somePropOrMethodisundefinedまたはその他の偽の値の場合、結果は常にになりますfalse。それ以外の場合は、true
[オブジェクトとそのプロトタイプチェーンを直接チェックします]