(typeof NaN); // => number *staun*[/code]
In gewisser Weise ist das ja verständlich. Aber z.B. gerade für den Zweck, der im OP beschrieben ist, ist es wenig hilfreich, wenn null oder ein Array als Objekt und NaN als Zahl verkauft wird. Es sind nunmal spezielle Typen und sollten sinnvollerweise von typeof auch als solche genannt werden. So aber ist typeof irgendwie nur "halbgar"... meiner bescheidenen Meinung nach.
Es ist die Frage für was du null verwenden willst.
Für mich ist ein nicht definiertes Objekt, ansonsten hat null eigentlich keine andere Bedeutung. Folglich muss typeof null object ergeben, denn deine ursprüngliche Intention war es ein Objekt zu erhalten.
Struppi.