
Zjištění typu proměnné pomocí typeof a instanceof
V JavaScriptu existují dva operátory, pomocí kterých můžeme zjistit typ proměnné. Prvním je typeof který se používá hlavně u primitivních datových typů. Druhým je pak operátor instanceof který se používá hlavně pro objekty.
Níže následují příklady použití operátoru typeof na několika typů hodnot:
> typeof true
'boolean'
> typeof 'abc'
'string'
> typeof {} // empty object literal
'object'
> typeof [] // empty array literal
'object'
Následující tabulka obsahuje seznam všech výsledků operátou typeof:
Operand |
Výsledek |
---|---|
undefined |
'undefined' |
null |
'object' |
Proměnná typu Boolean |
'boolean' |
Proměnná typu Number |
'number' |
Proměnná typu String |
'string' |
Funkce |
'function' |
Všechny ostatní hodnoty |
'object' |
Poznámka: typeof null vrací opravdu 'object', ale je to chyba která již nebyla v dalších verzích opravena, protože oprava mohla způsobit nefunkčnost již vytvořených kódů. Neznamená to ale, že by null byl objekt.
Použití operátoru instanceof je následující:
value instanceof Constr
Tento kód vrátí true pokud hodnota value je objekt, který byl vytvořen pomocí konstruktoru Constr. V ostatních případech vrátí false. Níže jsou příklady použití tohoto operátoru:
> var b = new Bar(); // objekt vytvořený konstruktorem Bar
> b instanceof Bar
true
> {} instanceof Object
true
> [] instanceof Array
true
> [] instanceof Object // Konstruktor typu pole je potomkem
true // konstruktoru typu Object
> undefined instanceof Object
false
> null instanceof Object
false