Moin!
Nein, da wird nichts gelogen. Ein Array (auch ein leeres) ist ein Objekt, nämlich eine Instanz der Array-Klasse. Und dasselbe gilt für das Null-Objekt.
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.
Array ist ein Objekt, das stimmt, aber wenn ich nach "typeof []" frage, interessiert mich das weniger, sondern ich will 'array' als Antwort.
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.
Wenn du wissen willst, ob ein Objekt eine Instanz von Array ist, kannst du ja instanceof oder Array.prototype.isPrototypeOf() verwenden.
- Sven Rautenberg
"Love your nation - respect the others."