JavaScript: Tipos de Dados em JavaScript

Última atualização: 2026-10-13

Tipos de dados determinam quais operações você pode realizar — números suportam aritmética, strings suportam concatenação, booleanos suportam condicionais. Entender tipos ajuda a evitar as armadilhas mais clássicas do JS.

Métodos globais:Array.isArray() Number.isNaN() parseInt() Number() typeof

1. Tipos de Dados do JS

JavaScript tem 8 tipos de dados, divididos em primitivos e tipos de referência:

Primitivos (7 tipos): String, Number, BigInt, Boolean, Undefined, Null, Symbol

Tipo de referência (1 tipo): Object (arrays, funções, datas, etc. são todos subtipos de Object)

Dados primitivos são armazenados na memória stack e copiados por valor durante a atribuição. Dados de tipo de referência são armazenados na memória heap e copiados por referência (endereço) durante a atribuição. Essa distinção será abordada em profundidade em lições posteriores.


typeof é um operador que verifica tipos de dados e retorna uma string:

Valor Resultado do typeof
"olá" "string"
42 "number"
9007199254740991n "bigint"
true "boolean"
undefined "undefined"
null "object" (bug histórico)
{ } "object"
function(){} "function"

Nota: typeof null retorna "object" — este é um bug histórico desde o início do JS que nunca pode ser corrigido (mudar isso quebraria código existente). Apenas lembre-se.


3. Armadilhas de String e Number

O operador + no JS serve para dois propósitos: adição numérica e concatenação de strings. Quando um lado do + é uma string, JS converte o outro valor para string também:

Esta é uma das armadilhas mais clássicas do JS — todo iniciante cai nela. A solução: use Number() ou parseInt() para conversão explícita antes de operações matemáticas.


4. null vs undefined

Ambos significam "sem valor", mas diferem na intenção:

Pense assim: undefined é uma casa nova sem móveis ainda; null é quando você deliberadamente tirou todos os móveis.

▶ Exemplo: typeof com Vários Tipos

▶ Experimente

▶ Exemplo: Armadilhas de String e Number

▶ Experimente

▶ Exemplo: null vs undefined

▶ Experimente

▶ Exemplo: Todos os Tipos de Dados de Uma Vez

▶ Experimente

Métodos globais:Array.isArray() Number.isNaN() parseInt() Number() typeof

❓ Perguntas Frequentes

P Por que typeof null retorna "object"?
R Este é um bug histórico da primeira versão do JS. Naquela época, JS usava bits baixos para identificar tipos, e null tinha todos os bits baixos zero — iguais ao identificador de objeto — então foi classificado incorretamente. Tentaram corrigir depois, mas mudar isso quebraria muito código existente, então o bug se tornou permanente. É como um prédio com fundação torta — muita gente mora lá para demolir.
P Como verifico se um valor é um array ou um objeto simples?
R typeof retorna "object" tanto para arrays quanto para objetos, então não pode distingui-los. A abordagem correta é Array.isArray() — por exemplo, Array.isArray([1,2]) retorna true, enquanto Array.isArray({}) retorna false.
P Qual tipo é NaN?
R NaN (Not a Number — Não é um Número) tem typeof NaN retornando "number". Ainda mais estranho, NaN === NaN retorna false — não é nem igual a si mesmo. Use isNaN() ou Number.isNaN() para verificar NaN.

📖 Resumo


📝 Exercícios

  1. Básico: Declare 6 variáveis para 6 tipos primitivos (String, Number, Boolean, Undefined, Null, Object), use typeof em cada uma e exiba os resultados na página.
  2. Intermediário: Crie uma página com um campo de entrada. Quando o usuário inserir qualquer valor, JS detecta seu tipo usando typeof e exibe o resultado. Tente inserir números, strings, true, null, etc., e observe a saída do typeof.
  3. Desafio: Crie uma página de "Quiz de Armadilhas de Tipo" com 5 perguntas de múltipla escolha testando conhecimento de coerção de tipo, como o que "1" + 2 resulta, se null == undefined é true ou false, etc. Mostre feedback correto/incorreto com explicações quando o usuário clicar em uma opção.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%