If a
is undefined, this works:
if(window.a) {}
while this throws an error:
if(a)
Can 开发者_StackOverflow中文版someone explain why?
window.a
is a property of window
and it's undefined. a
is a variable, and it's undeclared.
To use a variable, you should first declare it using the var
statement. Since you didn't declare a
, the interpreter raises an error. Object properties are not needed to be explicitly declared in order to use them. Crockford writes in The Good Parts:
If you attempt to extract a value from an object, and if the object does not have a member with that name, it returns the undefined value instead.
精彩评论