js null - это тип объекта

In the first implementation of JavaScript, JavaScript values were represented 
as a type tag and a value. The type tag for objects was 0. null was represented 
as the NULL pointer (0x00 in most platforms). Consequently, null had 0 as type 
tag, hence the "object" typeof return value. (reference)

A fix was proposed for ECMAScript (via an opt-in), but was rejected. 
It would have resulted in typeof null === 'null'.
AjmalTheDeveloper