Can someone explain way this work
if(window.a){}
while this is failing
if(a)
In both cases a is undefined.
Can someone explain way this work
if(window.a){}
while this is failing
if(a)
In both cases a is undefined.
undefined is not a true of false affirmation, so you cannot check it using if(undefined).
If you want to check if your variable is defined, you can do this :
if( typeof(yourVariable) != "undefined") {
alert("Variable is defined");
}
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.