Tipos de Dados Javascript

Javascript
Tempo de leitura: 3 minutos

Tipos de Dados Javascript: O JavaScript opera sob um sistema de tipagem dinâmica e fraca. Embora o tipo de uma variável possa mudar durante a execução, todo valor em JS pertence a uma categoria estrita.

Entender esse sistema é fundamental, pois ele define como os dados são armazenados, manipulados e, crucialmente, comparados. Dividimos os tipos em duas categorias principais: Primitivos (Imutáveis) e Objetos (Mutáveis).

1. Tipos Primitivos (Imutáveis)

Tipos primitivos representam valores únicos e são imutáveis. Ou seja, você não altera o valor primitivo; você reatribui a variável para apontar para um novo valor. O JavaScript possui sete tipos primitivos:

TipoDescriçãoExemplo
NumberNúmeros inteiros e de ponto flutuante.42, 3.14
StringSequência de caracteres (texto), delimitada por aspas."Olá, Mundo!"
BooleanLógico: true ou false.true
nullAusência intencional de qualquer valor (atribuído).let resultado = null;
undefinedVariável declarada, mas sem valor atribuído (padrão).let variavel;
SymbolValor único e imutável (ES6). Usado como identificador de propriedade.Symbol('id')
BigIntNúmeros inteiros maiores do que o limite seguro do Number.9007199254740991n

2. Tipo Objeto (Mutável)

O Object é o único tipo estrutural. Objetos são coleções de pares chave-valor e são mutáveis (suas propriedades podem ser alteradas sem mudar a referência do objeto na memória).

Subtipos de Objeto Cruciais

  1. Objetos Literais: Usados para agrupar dados.
    JavaScript
    let carro = { marca: "Tesla", modelo: "X" }; // Mutabilidade: Podemos mudar a propriedade: carro.modelo = "Y";
  2. Arrays: Objetos especializados para armazenar coleções ordenadas de dados.
    JavaScript
    let frutas = ["maçã", "banana"]; frutas.push("laranja"); // Adiciona um item (mutável)
  3. Funções: São objetos de “primeira classe”, podendo ser passadas como argumentos e retornadas.

3. Tipagem Dinâmica e Coerção

A tipagem dinâmica é a característica que permite que o tipo de valor armazenado em uma variável mude durante a execução:

JavaScript

let valor = 10;          // Tipo: Number
valor = "Dez";           // Tipo agora é String

🚨 O Risco da Coerção de Tipos (Type Coercion)

O JavaScript tenta automaticamente converter tipos de dados em operações, o que é chamado de coerção. Isso é uma fonte comum de bugs:

OperaçãoExemploResultadoTipo da SaídaExplicação
+ (Adição)"10" + 5"105"StringO JS converteu 5 para String (Concatenação).
- (Subtração)"10" - 55NumberO JS converteu "10" para Number (Operação Matemática).

Regra de Ouro: Igualdade Estrita (===)

Para evitar a coerção inesperada, use os operadores de igualdade estrita (===) e desigualdade estrita (!==). Eles comparam valor E tipo sem tentar converter.

JavaScript

console.log(10 == "10");  // true (Igualdade Fraca: JS converte "10" para 10)
console.log(10 === "10"); // false (Igualdade Estrita: Tipos são diferentes)

4. Diferença Crucial: Passagem por Valor vs. Referência

A forma como os valores são copiados é fundamental e depende do tipo:

  • Primitivos: São copiados por Valor. Se você atribui let b = a;, b recebe uma cópia do valor de a. Mudar b não afeta a.
  • Objetos: São copiados por Referência. Se você atribui let b = a;, b e a apontam para o mesmo objeto na memória. Mudar b afeta a.

JavaScript

// Exemplo de Referência (Mutabilidade)
let objA = { valor: 20 };
let objB = objA; // Copia a referência

objB.valor = 20;

console.log(objA.valor); // Saída: 20 (Ambos referenciam o mesmo objeto)

✅ Conclusão Tipos de Dados Javascript

Dominar os tipos de valores em JavaScript é a base da gestão de dados. A distinção entre imutabilidade (Primitivos) e mutabilidade (Objetos), juntamente com o uso rigoroso da igualdade estrita (===), são práticas essenciais para escrever lógica previsível e livre de bugs em um ambiente de tipagem dinâmica.

Toda jornada tem um início, e o início para se tornar um desenvolvedor web é dominar as seguintes tecnologias, que você encontra aqui mesmo:

HTML
HTML
CSS
CSS
Javascript
JavaScript

E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados:

Hospedagem Hostinger
Ofertas Amazon
Amazon Prime
Author: Thiago Rossi
Com mais de 20 anos de jornada na tecnologia, minha trajetória evoluiu do ensino técnico à arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de soluções de Inteligência Artificial nativa e análise de dados públicos, utilizando o ecossistema PHP para transformar dados brutos em transparência e eficiência. Como autor e desenvolvedor, acredito na democratização do conhecimento. Essa visão resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura até os bastidores da indústria de Jogos e IA. No universo de Game Design, sou autor do livro "GDD – O Guia Definitivo" e documento ativamente meus processos através de DevLogs, unindo rigor técnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso é conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.