How can i check in JavaScript if a variable is defined in a page? Suppose I want to check if a variable named "x" is defined in a page, if I do if(x != null)
, it gives me an error.
views:
2739answers:
9try to use undefined
if (x !== undefined)
This is how checks for specific Browser features are done.
I got it to work using "if (typeof(x) != "undefined")" thank you.
The typeof operator, unlike the other operators, doens't throws a ReferenceError exception when used with an undeclared symbol, so its safe to use...
if (typeof a != "undefined") {
a();
}
Assuming your function or variable is defined in the typical "global" (see: window's) scope, I much prefer:
if (window.a != null) {
a();
}
or even the following, if you're checking for a function's existence:
if (window.a) a();
To avoid accidental assignment, I make a habit of reversing the order of the conditional expression:
if ('undefined' !== typeof x) {
All of these ways leave unpleasant "Error" messages in my JavaScript console (in my FireFox Web Developer Toolbar). Any idea how to avoid this?
You can do that with:
if (window.x !== undefined) { // You code here }
As others have mentioned, the typeof
operator can evaluate even an undeclared identifier without throwing an error.
alert (typeof sdgfsdgsd);
Will show "undefined," where something like
alert (sdgfsdgsd);
will throw a ReferenceError.