null is a special object because typeof null returns 'object'.
On the other hand,
undefined means that the variable has not been declared,
or has not been given a value.
Undefined used for unintentionally missing values.
Null used for intentionally missing values.
//loosely equal (compare values between two variables)
null == undefined // true ( null => 0 , undefined => NAN)
//strictly not equal (compare both type and value)
null === undefined // false (typeof null => object , typeof undefined => undefined)
null !== undefined // true (typeof null => object , typeof undefined => undefined)
null == undefined