|The keyword false
|Negative number 0
|0 in BigInt
|Primitive null – no value
|Not a Number
The two primitives
undefined are known as nullish. Put simply, it means that they don’t have any value. They get converted to false via Type Coercion in a boolean context.
By above definitions, we see that nullish values are also falsy.
Zero is fundamentally a numerical value, and thus is used to denote that a countable thing has none of its kind. As a numeric value, zero can be used with arithmetic operations.
null is more generic than zero: it represents the absence of a value in any context. Note that null is an explicit value that needs to be intentionally set by a developer. Zero indicates a numerical value, whereas
null says the property or variable being accessed exists, but it semantically has no value.
undefined represents that a property or variable has not yet been assigned a value. This is also the default result when you try to access a property that does not exist.