Sven Rautenberg: typeof liefert immer string

Beitrag lesen

Moin!

ich will das ich wenn ich eine Zahl eingebe unter typeof Number erhalte
wenn ich true eingebe soll da boolean stehen usw...

So funktioniert es doch eigentlich auch.

Javascript wandelt einen Variablentyp nicht deshalb, weil man typeof aufruft, sondern nur dann, wenn zueinander inkompatible Typen miteinander verknüpft werden. Erst dann werden z.B. Strings in Zahlen oder Zahlen in Strings gewandelt.

Allerdings gibt typeof immer einen String zurücck, also "typeof true" liefert z.B. 'boolean'.

Ich denke, der Ergebnistyp von typeof ist hier nicht das Problem.

Aber, was schlimmer ist: "typeof null" lügt 'object' und "typeof []" sagt ebenfalls 'object', statt 'array'.

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.

Mit instanceof kann man das beweisen:
alert([] instanceof Array);
// ergibt true.

Man kann aber eine eigene Funktion basteln, die die korrekten Strings zurückgibt ('null' und 'array').

Man kann viel - wenn man das unbedingt benötigt.

- Sven Rautenberg

--
"Love your nation - respect the others."