Naja, es geht auch z.b., um den Kontext. Da wo die null ist, wird ein Objekt erwartet, da wo NaN ist, eine Zahl. typeof getElementById(...) muss immer 'object' ergeben und nicht mal dies oder jenes.
typeof dient also dazu herauszufinden, was erwartet wird oder was irgendwo stehen könnte? Hmm, das weiß man doch...
Es geht nicht um typeof, es geht um den Wert. null dient dazu in einem Kontext wo ein Objekt erwartet wird den Nichterfolg anzuzeigen, ansonsten wäre null überflüssig, dann würde auch false reichen.
typeof benutzte ich eigentlich immer um rauzufinden, ob ein Wert definiert ist.
Ob etwas überhaupt definiert ist prüfe ich, wenn überhaupt nötig, mit
if(sth!==undefined)
...
Fehler: sth is not defined
Quelldatei: .../tmp.html
Zeile: 16
Das geht nicht, wenn sth nicht deklariert wurde. Ich benutze undefined nicht, da es lange Zeit nicht alle Browser konnten, aber das dürfte sich mittlerweile geändert haben.
Ausserdem muss ja auch der Vergleich obj !== null funktionieren und das geht nur, wenn null ein Objekt ist.
Wieso? Das geht auch sonst. null ist ja kein Objekt.
Doch, null ist ein Objekt. Aber es geht um die Theorie. Ein exakter Vergleich prüft auf den Typ, wenn null nicht ein Objekt wäre, gäbe es kein entsprechende Möglichkeit auf exakte Gleichheit zu prüfen.
Struppi.