AskHandle

AskHandle Blog

What is the Difference Between undefined and null in JavaScript?

May 30, 2025Melissa Olson3 min read

What is the Difference Between undefined and null in JavaScript?

When working with JavaScript, you might often find yourself confused about the difference between undefined and null. Although both are used to represent the absence of a value, they have different meanings and are used in different situations. Understanding how they differ is important for writing clear and bug-free code.

What does undefined mean?
In JavaScript, a variable that has been declared but not assigned a value automatically has the value undefined. This indicates that the variable exists but has no specific value assigned yet. It’s also returned when you access a property of an object that doesn’t exist or call a function that doesn’t explicitly return anything.

For example:

javascript
1let x;
2console.log(x); // Output: undefined

Here, x is declared but not initialized, so it is undefined.
Similarly, if you access a nonexistent property:

javascript
1const obj = { name: 'Alice' };
2console.log(obj.age); // Output: undefined

Since age isn’t a property of obj, JavaScript returns undefined.

What does null mean?
null is a value that explicitly represents “no value” or “nothing”. It is intentionally assigned to indicate the absence of any object value. It is often used when you want to reset or clear a variable.

For example:

javascript
1let y = null;
2console.log(y); // Output: null

Here, y was intentionally set to null, indicating that it deliberately has no value right now.

Key differences between undefined and null include:

  • Type: typeof undefined returns "undefined"
    typeof null returns "object" (this is historically considered a bug in JavaScript but remains for backward compatibility)

  • Usage context: undefined usually means a variable has been declared but not assigned, or a function did not return a value.
    null is used when you want to explicitly clear a value or indicate the absence of an object.

Examples to compare undefined and null:

javascript
1let a;
2console.log(a); // undefined
3
4let b = null;
5console.log(b); // null
6
7console.log(typeof a); // undefined
8console.log(typeof b); // object

Checking for undefined or null:
When you want to see if a variable is unset or has no value, you can check like this:

javascript
1if (a === undefined) {
2  console.log('a is undefined');
3}
4
5if (b === null) {
6  console.log('b is null');
7}

Or, to check if a variable has any value (not undefined or null):

javascript
1if (a != null) {
2  // This checks that a is neither null nor undefined
3}

undefined is a default value given to uninitialized variables or missing properties, whereas null is a developer-assigned value indicating an intentionally empty or reset state. Knowing the difference helps in debugging and making clearer decisions in your code.