Use null when you intentionally want to say 'no value here' (e.g., resetting a variable). Let undefined be the engine's default for things not yet assigned. Use == null to check for both at once.
undefined vs null in JavaScript
When should you use null instead of undefined in JavaScript?
The answer
More FAQs in undefined vs null in JavaScript
undefined is the engine's default for variables and properties with no value. null is a value the developer assigns to intentionally mean 'no value.' typeof undefined is 'undefined'; typeof null is 'object' (a historical bug).
It is a historical bug from the original implementation. null was represented with a type tag of 0, which the typeof check interpreted as object. It cannot be fixed without breaking existing code, so it remains.
Number(undefined) is NaN, so undefined + 5 is NaN. Number(null) is 0, so null + 5 is 5. This difference is a real source of bugs in arithmetic.
Still have questions?
Browse all our FAQs or reach out to our support team
Want to upskill yourself?
Your learning library
Small steps. Big possibilities.
Find your next course. Build something great.