6

aが未定義の場合、これは機能します。

if(window.a) {}

これがエラーをスローしている間:

if(a)

誰かが理由を説明できますか?

4

1 に答える 1

10

window.aはのプロパティでwindowあり、未定義です。aは変数であり、宣言されていません。

var変数を使用するには、最初にステートメントを使用して変数を宣言する必要があります。宣言しなかったためa、インタプリタはエラーを発生させます。オブジェクトプロパティを使用するために、オブジェクトプロパティを明示的に宣言する必要はありません。CrockfordはTheGoodPartsに次ように書いています。

オブジェクトから値を抽出しようとしたときに、オブジェクトにその名前のメンバーがない場合は、代わりに未定義の値が返されます。

于 2010-03-30T08:30:24.773 に答える