Читать книгу JavaScript – Das Handbuch für die Praxis - David Flanagan - Страница 113
4.13.3Der typeof-Operator
Оглавлениеtypeof ist ein unärer Operator, der einem Operanden beliebigen Typs vorangestellt wird. Sein Ergebniswert ist ein String, der den Typ des Operanden angibt. Tabelle 4-3 zeigt den Wert des typeof-Operators für alle JavaScript-Typen.
Tabelle 4-3: Werte, die vom typeof-Operator zurückgegeben werden
x | typeof x |
undefined | "undefined" |
null | "object" |
true oder false | "boolean" |
eine Zahl oder NaN | "number" |
ein BigInt | "bigint" |
ein String | "string" |
ein Symbol | "symbol" |
eine Funktion | "function" |
ein Objekt, das keine Funktion ist | "object" |
Sie könnten den typeof-Operator in einem Ausdruck wie diesem nutzen:
// Wenn der Wert eine Zeichenkette ist, wird sie in Anführungszeichen gesetzt,
// andernfalls umgewandelt.
(typeof value === "string") ? "'" + value + "'" : value.toString()
Beachten Sie, dass typeof »object« liefert, wenn der Wert des Operanden null ist. Wenn Sie null von Objekten unterscheiden wollen, müssen Sie explizit auf diesen Sonderfall testen.
Obwohl JavaScript-Funktionen so etwas wie Objekte sind, betrachtet der typeof-Operator Funktionen als ausreichend anders – deshalb gibt es für sie einen eigenen Rückgabewert.
Weil typeof für alle Objekt- und Array-Werte außer Funktionen zu »object« ausgewertet wird, ist der Operator nur zur Unterscheidung zwischen Objekten und anderen primitiven Typen geeignet. Wollen Sie eine Klasse von Objekten von einer anderen unterscheiden, müssen Sie andere Techniken wie den instanceof-Operator (siehe 4.9.4), das class-Attribut (siehe 14.4.3) oder die constructor-Eigenschaft (siehe 9.2.2 und 14.3) nutzen.