Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
typeof
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julho de 2015.
Sumário
O operadortypeof retorna uma string indicando o tipo de um operando.
In this article
Sintaxe
O operadortypeof pode ser utilizado das seguintes maneiras:
typeof operando
Parâmetros
operando é a string, variável, keyword, ou objeto para que o tipo do mesmo seja retornado. O uso de parênteses é opcional.
Descrição
Esta tabela resume os possíveis valores que são retornados pelotypeof:
| Tipo | Resultado |
|---|---|
| Undefined | "undefined" |
| Null | "object" |
| Boolean | "boolean" |
| Number | "number" |
| String | "string" |
| Host object (provided by the JS environment) | Implementation-dependent |
| Function object (implements [[Call]] in ECMA-262 terms) | "function" |
| E4X XML object | "xml" |
| E4X XMLList object | "xml" |
| Qualquer outro objeto | "object" |
Exemplos
>Casos comuns
// Números - Numéricostypeof 37 === "number";typeof 3.14 === "number";typeof Math.LN2 === "number";typeof Infinity === "number";typeof NaN === "number"; // Apesar de ser "Não-Numérico"typeof Number(1) === "number"; // mas nunca utilize desta forma!// Strings - Seqüências de caracterestypeof "" === "string";typeof "bla" === "string";typeof typeof 1 === "string"; // typeof sempre retorna uma stringtypeof String("abc") === "string"; // mas nunca utilize desta forma!// Booleans - Lógicos booleanostypeof true === "boolean";typeof false === "boolean";typeof Boolean(true) === "boolean"; // mas nunca utilize desta forma!// Undefined - Indefinidostypeof undefined === "undefined";typeof blabla === "undefined"; // uma variável indefinida// Objetostypeof { a: 1 } === "object";typeof [1, 2, 4] === "object"; // use Array.isArray ou Object.prototype.toString.call para diferenciar os objetos das arraystypeof new Date() === "object";typeof new Boolean(true) === "object"; // isto é confuso, portanto não use desta forma!typeof new Number(1) === "object"; // isto é confuso, portanto não use desta forma!typeof new String("abc") === "object"; // isso também é confuso, assim evite usar esta construção!// Funçõestypeof function () {} === "function";typeof Math.sin === "function";null
// Desde os primóridos do JavaScripttypeof null === "object";Na primeira implementação do JavaScript, valores em JavaScript foram representados com uma tag (etiqueta) de tipo e um valor. A tag de tipo para objetos foi 0.null foi representada com o ponteiro NULL (0x00 na maioria das plataformas). Consequentemente, null teve 0 como sua tag de tipo, portanto otypeof retorna esse valor. (necessário referência)
Está previstopara ser corrigido na próxima versão do ECMAScript (que estará disponível através de um opt-in). Isso resultará em umtypeof null === 'null'.
Expressões regulares
Expressões regulares que podem ser chamadas foram uma adição não-padrão em alguns browsers (necessidade de referência para dizer qual).
typeof /s/ === "function"; // Chrome 1-12 ... // Não-conforme no ECMAScript 5.1typeof /s/ === "object"; // Firefox 5+ ... // Conforme no ECMAScript 5.1Outras peculiaridades
alert versões antigas do Internet Explorer
No IE 6, 7 e 8,typeof alert === 'object'