To check if a variable is defined or initialized in JavaScript:
- Use the
typeof
operator, e.g.typeof z !== 'undefined'
. - If the value returned by the
typeof
operator is not the"undefined"
string, then the variable is defined.
let a,
b = 5
if (typeof a !== 'undefined') {
console.log(`Variable a is defined`)
}
if (typeof b !== 'undefined') {
console.log(`Variable b is defined`)
}
// Output => Variable b is defined
The first statement does not execute because the variable a
is declared but not assigned a value. Therefore, it is automatically assigned the value undefined
.
The second statement gets executed because the variable b
is declared and initialized with a value 5
.
The typeof
operator, unlike the other operators, does not throw a ReferenceError
exception when used with a variable that is not declared:
// => Attempt to access an undeclared `c` variable
if (typeof c !== 'undefined') {
console.log(`Variable c is defined`)
}
// => Throws ReferenceError: c is not defined
if (c !== 'undefined') {
console.log(`Variable c is defined`)
}
// => Throws ReferenceError: c is not defined
if (c) {
console.log(`Variable c is defined`)
}
However, the typeof
operator would throw an exception if you use the typeof
operator before declaring a variable with let
or const
, as shown below:
// => Throws ReferenceError: Cannot access 'c' before initialization
if (c !== 'undefined') {
console.log(`Variable c is defined`)
}
let c = 10
✌️ Like this article? Follow me on Twitter and LinkedIn. You can also subscribe to RSS Feed.