同じページから参照される別のスクリプト ファイルによって作成されたオブジェクトに依存するコードを書いているとき、何かグローバル変数の存在をテストしなければならないことがよくあります。
それを行うための論理的なイディオムは次のようになると思います。
if (window.myLibrary) myLibrary.someFunction();
ただし、stackoverflow に関するいくつかの調査の後、コンセンサスは、正しいイディオムは次のように思われます。
if (typeof myLibrary != "undefined") myLibrary.someFunction();
このイディオムは、stackoverflow に関するいくつかの回答で示されています。最も顕著な例は次のとおりです。
変数がJavaScriptで定義されているかどうかを確認するにはどうすればよいですか
ただし、2 番目のバージョンが望ましい理由についての説明は見つかりません。そのためのすべての推奨事項は、「これを使用する」という形式になっています。window オブジェクトのプロパティとしてオブジェクトを参照することにより、オブジェクトをチェックするよりも typeof 演算子を使用する方が優れている理由を誰か説明してもらえますか?