Operador typeof

O operador typeof permite determinar o tipo de um parâmetro (número, string, objeto). O operador retorna uma string, contendo o tipo ('number', 'string', 'object').

Para null o operador retorna 'object' (esta é um erro reconhecido na linguagem). Para funções, o operador retorna 'function'. Isto foi implementado por conveniência, uma vez que o tipo 'function' não existe.

Sintaxe

O operador typeof possui 2 sintaxes (ambas as sintaxes funcionam de forma idêntica):

javascripttypeof parâmetro;
typeof(parâmetro);

Exemplo

Vejamos como typeof funciona com um número:

javascripttypeof 1;

Como resultado da execução do código obteremos o valor number:

javascript'number'

Exemplo

Agora vamos passar uma string como parâmetro:

javascripttypeof 'str';

Resultado da execução do código:

javascript'string'

Exemplo

Agora vamos especificar o valor booleano true como parâmetro:

javascripttypeof true;

Resultado da execução do código:

javascript'boolean'

Exemplo

Vamos ver qual é o tipo do valor undefined:

javascripttypeof undefined;

Após a execução do código obteremos também undefined:

javascript'undefined'

Exemplo

Agora vamos descobrir o tipo de um objeto vazio:

javascripttypeof {};

Resultado da execução do código:

javascript'object'

Exemplo

E agora vamos descobrir o tipo de um array vazio:

javascripttypeof [];

Como resultado também obteremos 'object':

javascript'object'

Exemplo

Vamos descobrir o tipo do valor null:

javascripttypeof null;

Como resultado também obteremos 'object', o que é um erro reconhecido na linguagem:

javascript'object'

Exemplo

Agora vamos determinar o tipo de uma função vazia:

javascripttypeof function() {};

Após a execução do código obteremos 'function', apesar de tal tipo não existir. Esta string é necessária para a conveniência do usuário ao identificar uma função:

javascript'function'

Exemplo

Vamos escrever uma função que irá exibir apenas números:

javascriptfunction printNumber(number) {
  if (typeof number === 'number') {
    console.log(number);
  }
}

printNumber(2);
printNumber('str');
printNumber(3);

Veja também

  • a função isNaN,
    que realiza a verificação para NaN
  • a função isFinite,
    que verifica se um número é finito