published: 22 Jun 2022
2 min read
How to check if a variable exists or defined in JavaScript
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
Are we missing something? Help us improve this article. Reach out to us.
How to check if a variable exists or defined in JavaScript
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
Are you looking for other code tips?
JS Nooby
Javascript connoisseur