Difference between null and undefined
- JavaScript course
- Beginner
- Lesson 4/133
- 5 min
Learn the difference between empty and undefined values and when to use each.
What is undefined?
In JavaScript, if you declare a variable but do not assign a value, that variable automatically holds undefined. The word means not defined: the variable exists but it has no value inside.
For example, let ad; declares the ad variable but its value is undefined. If you then write console.log(ad); the console shows undefined. This happens when you try to read a variable before assigning to it.
What is null?
null is an intentionally given empty value. You are saying the variable will be empty; JavaScript did not forget anything, you said empty for now.
For example, if a user has not yet picked a city you write let sehir = null;. If you then write console.log(sehir); the console shows null. So null says the variable has a value, and that value is empty.
When to use null, when undefined?
undefined is usually a state JavaScript itself produces: you forgot something and the system says no value. null is a value you write on purpose: empty for now, I will fill it later.
In short: when you want to give a variable an empty for now value, use null. When you forget to assign a value, JavaScript automatically gives undefined. In practice you do not write undefined by hand; you write null to mean I meant empty.
Practice Show undefined first, then null
Declare a pick variable with let but do not assign a value (so it becomes undefined). Then assign null to pick. In both states, print its value with console.log.
Starter code
// declare a variable (no value)
// then assign null
// print both statesSample solution
let pick;
console.log(pick);
pick = null;
console.log(pick);Questions and answers
Review the lesson questions together with their answers. To test yourself, solve the lesson interactively.
1 Which of these snippets prints undefined to the console?
- let yas = 30; console.log(yas);
- let yas; console.log(yas); Correct answer
- let yas = "30"; console.log(yas);
- let yas = null; console.log(yas);
Explanation: yas is declared but never given a value, so it is undefined.
2 Assign null to pick
let pick = ____;
let pick = null;
Explanation: null is written in lowercase, without quotes.
3 Match each value to its meaning
| Term | Meaning |
|---|---|
undefined |
No value assigned |
null |
Intentional empty |
42 |
A number |
true |
Logical true |