← Voltar ao Glossário
IntermediárioGeral

O que é Imutabilidade?

Princípio onde dados não são modificados após criação — novas versões são geradas em vez de alterar o original.

Definição completa

Imutabilidade é um princípio da programação funcional onde, uma vez criado, um valor não pode ser alterado. Em vez de modificar um objeto existente, cria-se um novo com as mudanças desejadas. Isso torna o código mais previsível, facilita o rastreamento de mudanças de estado (como no Redux), elimina bugs de mutação acidental e permite otimizações como memoização. Em JavaScript, `const`, `Object.freeze()` e o spread operator são ferramentas para trabalhar com imutabilidade.

Exemplo de código

// Mutável vs Imutável

// ❌ Mutável — modifica o objeto original
const usuario = { nome: 'Ana', ativo: true };
usuario.ativo = false; // mutação direta

// ✅ Imutável — cria novo objeto
const usuarioAtualizado = { ...usuario, ativo: false };

// ❌ Mutável — modifica o array original
const nums = [1, 2, 3];
nums.push(4);

// ✅ Imutável — retorna novo array
const numsAtualizados = [...nums, 4];

// Útil no React para evitar re-renders desnecessários
setState(prev => ({ ...prev, loading: false }));