JavaScript: Is the variable defined?
Sometimes, you may want to check if a variable is already defined e.g. to not override definitions made by other scripts. However, there are many ways to check if a variable is or isn't defined in JavaScript. Here, I'll try to cover some of them.
The first one is checking if the value of the variable is identical to undefined:
var x; // x is declarated, but doesn't has a value i.e. undefined
if (x === undefined) { // True
// x is undefined
}
This approach only works if the variable is, at least, declarated. If it isn't, a ReferenceError happens. To avoid this, use typeof:
var x;
if (typeof x === "undefined") { // True
// ...
}
if (typeof y === "undefined") { // True, with y not declarated.
// ...
}
Another way to check if a variable is declarated is to check on the scope, or, if the variable is global, on the global object.
var x;
if ("x" in this) { // True
// ...
}
if ("y" in this) { // Nope, but look, no error
// ...
}
var Klazz = function() {
this.something = 0;
if ("something" in this) { // Also true
// ...
}
}
As a last note, this, in the global scope, on most browsers, is the same as the window object.
Sources:
Mozilla Developer Network - Undefined
Stack Overflow
Written by Ramon Dantas
Related protips
1 Response
In most cases undefined is not declared variable. If you want to declare empty variable, initialize it with null, not undefined and then just test for condition typeof x == 'undefined'
Have a fresh tip? Share with Coderwall community!
JavaScript on a page runs with the privileges of that origin. One altered library, tag manager, or snippet can read inputs, change what people see, and call your APIs as the user.
Security insights from Cside