# How to check if a variable exists or defined in JavaScript

By Atta Ur Rehman Shah (https://attacomsian.com/about). Published Sep 17, 2022, updated Sep 18, 2022. Topics: JavaScript.
Canonical URL: https://attacomsian.com/blog/javascript-check-if-variable-defined

> Learn how to use the typeof operator to check if a variable exists or is defined in JavaScript.

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.

```javascript
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`](https://attacomsian.com/blog/javascript-check-if-variable-is-undefined-or-null).

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:

```javascript
// => 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:

```javascript
// => Throws ReferenceError: Cannot access 'c' before initialization
if (c !== 'undefined') {
  console.log(`Variable c is defined`)
}

let c = 10
```
