Table of Contents
Null vs Undefined
null and undefined are both special values that indicate the absence of a value. However, they are used in slightly different contexts and have some differences in behavior.
Null
null is a value that represents no value or no object.
It is an assignment value that represents the intentional absence of any object value.
You can explicitly assign null to a variable to indicate that the variable should have no value.
Comparing with loose equality ==, null is equal to undefined.
Undefined
undefined is a primitive value that indicates that a variable has not been initialized, and no value has been assigned to it.
When you declare a variable without assigning any value to it, it is undefined.
When you try to access an object property or an array element that doesn't exist, you get undefined.
Functions without a return statement return undefined.
Comparison
null == undefined returns true, as they are loosely equal.
null === undefined returns false, as they are not strictly equal (they are two different types).
Example:
let a; console.log(a); // undefined a = null; console.log(a); // null console.log(null == undefined); // true console.log(null === undefined); // false
Conclusion
- Use null when you want to intentionally signify that there is no value.
- undefined usually means that a variable has not been assigned a value, or a function is not returning anything. So it may be considered the unintentional absence of the value.