Hallo,
Ein Null-Objekt gibt es nicht. Null ist "kein* Objekt. Das ist definitiv eine Lüge von typeof.
Definitionssache. Javascript sieht Null als Objekt an.
Tut es nicht. Nur typeof behauptet das. Es gibt auch gar kein "Null", nur "null" als eingebauter Typ wie "false" oder "NaN", die auch keine Objekte sind. In JavaScript ist zwar fast alles ein Objekt, aber null gehört nicht dazu.
Wenn null deiner Meinung nach als Objekt gilt, dann versuch' doch mal, es zu erweitern, z.B. so:
[code lang =javascript]
var myNull = null;
myNull['neueEigenschaft'] = 'TestString';
alert( myNull.neueEigenschaft );
[/code]
=> Error: 'myNull' ist kein Objekt
Mit welcher Begründung sollte typeof jetzt plötzlich bei Arrays, die nur eine Instanz eines bestimmten Objekts sind, was anderes als "object" zurückliefern. Bei Objekten von Date oder String passiert das ja auch nicht.
Weil es z.B. für String und Number auch sog. Primitves gibt, für welche typeof dann ein brauchbares Ergebnis liefert. Man muss solche ja nicht unbedingt als Objekte benutzen. Es gibt aber kein primitives Array, sondern die sind immer Objekte, leider. typeof sollte hier IMHO trotzdem 'array' sagen. Natürlich kann man darüber geteilter Meinung sein. Allerdings nicht bei null.
Gruß, Don P