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 }));