Sobes.tech
Junior

Qual é a principal diferença entre tipos de dados mutáveis e imutáveis?

sobes.tech IA

Resposta da IA

A principal diferença reside na capacidade de alterar o valor do objeto após a sua criação. Os tipos mutáveis permitem alterações diretas, enquanto os imutáveis não. Ao "alterar" um objeto imutável, na verdade, cria-se um novo objeto com um novo valor.

Exemplos:

Tipos mutáveis:

  • Array
  • Object
// Exemplo mutável (Array)
let mutableArray = [1, 2];
mutableArray.push(3); // Altera o array existente
console.log(mutableArray); // Vai mostrar: [1, 2, 3]
// Exemplo mutável (Object)
let mutableObject = { a: 1 };
mutableObject.b = 2; // Altera o objeto existente
console.log(mutableObject); // Vai mostrar: { a: 1, b: 2 }

Tipos imutáveis:

  • String
  • Number
  • Boolean
  • null
  • undefined
  • Symbol
  • BigInt
// Exemplo imutável (String)
let immutableString = "olá";
immutableString = immutableString + " mundo"; // Cria uma nova string
console.log(immutableString); // Vai mostrar: olá mundo

// A comparação de referências mostrará a diferença
let str1 = "abc";
let str2 = str1.toUpperCase();
console.log(str1 === str2); // Vai mostrar: false
// Exemplo imutável (Number)
let immutableNumber = 10;
immutableNumber = immutableNumber + 5; // Cria um novo valor numérico
console.log(immutableNumber); // Vai mostrar: 15

Comparação:

Característica Mutáveis Imutáveis
Alteração Possível após criação Não possível após criação
Nova referência Permanece a mesma Uma nova é criada ao "alterar"

Compreender esta diferença é fundamental para a previsibilidade do código, trabalho com estados (por exemplo, em React com Redux) e otimização. O uso de dados imutáveis simplifica a depuração, permite implementar facilmente funções de desfazer (undo) e otimiza a renderização em frameworks de UI por meio de simples comparações de referências.