por que é o tipo de objeto "objeto" nulo?

Estou lendo o 'Professional Javascript for Web Developers' Chapter 4 e ele me diz que os cinco tipos de primitivos são: indefinido, nulo, booleano, número e string.

E senull é um primitivo, por quetypeof(null) Retorna"object"?

Isso não significa quenull é passado por referência (estou assumindo aqui todos os objetos são passados ​​por referência), portanto, tornando-se não um primitivo?

questionAnswers(5)

yourAnswerToTheQuestion