In JavaScript we have seven primitives:
- string
- number
- boolean
- null
- undefined
- symbol
- bigInit
We often think that null and undefined are the same.
Let's try to use strictly equal operator with them:
they are not equal at all.
Undefined means that we have not yet attributed a value;
while null is a value that indicates nothingness
Top comments (2)
Hi,
You know you can find the type of a value with the
typeof
command :Just remember : the type of the value
null
should be normallynull
, but it's not !It's a very interesting story about a little bug insidiously introduced at the very beginning of the JS implementation (a tiny neglected of an
if
statement fot this type !) described here, and will never be fixed (too late !).However, this tale highly helps me remember the case !
In Gwion, I actually implemented
@null
type (the type ofnull
) as inheriting fromObject
, as it means absence of an object. It's true this way needs a few special rules to match, say, function pointers but it works well this way.