Not Defined vs. Undefined in JavaScript

grepliz profile image Liz Lam ・1 min read

There are two conditions that are closely worded but mean very different things in JavaScript. A variable can be undefined vs. not defined.

Let's open up your browser's console and take a closer look.

Suppose you type a + b and hit ENTER. You will see something like the following:

not defined

This ReferenceError is telling us that we have not declared the variable a and therefore it is not defined.

Let's declare a and see what happens.


The let (as well as the var and const) keyword is used to declare a variable but since we have not assigned it an actual value, a is undefined.

The difference may feel subtle but they really are different things. In one case, a doesn't even exist (i.e. not defined) and in the other it does but doesn't have a value.

Posted on by:

grepliz profile

Liz Lam


I love open source, coffee and tinkering.


markdown guide

Never thought about it, simple but very interesting. Thanks!


This is an interesting topic Liz, if you explain the hoisting this can be more didactic for your readers :)


Thanks for the suggestion! I will definitely think on that.