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 experiência em tecnologia, atuo como Engenheiro de Computação, desenvolvedor de sistemas, escritor e produtor de conteúdo. Minha trajetória passa pelo ensino técnico, desenvolvimento web, arquitetura de sistemas e criação de soluções voltadas para a indústria de jogos digitais. Acredito que conhecimento deve ser acessível e aplicável. Essa visão resultou em uma biblioteca com mais de 550 artigos gratuitos, abrangendo temas como desenvolvimento web, infraestrutura, inteligência artificial, Game Design, mercado de jogos e carreiras na indústria de games. Sou autor do livro "GDD – O Guia Definitivo", uma obra dedicada ao planejamento e documentação de jogos digitais, e criador do GameMeTRix, uma plataforma que auxilia desenvolvedores na análise e validação de ideias para jogos. Meu trabalho busca conectar planejamento, tecnologia e mercado para ajudar criadores a transformar boas ideias em projetos viáveis. Atualmente concentro meus estudos e projetos no desenvolvimento de jogos web, na criação de metodologias para validação de produtos digitais e na produção de conteúdo técnico voltado ao ecossistema de jogos. Meu compromisso é unir teoria, prática e experiência de mercado para contribuir com o crescimento de novos desenvolvedores e profissionais da área.