To check if a variable is defined or initialized in JavaScript:

  1. Use the typeof operator, e.g. typeof z !== 'undefined'.
  2. 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.