Sobes.tech
Junior

¿En qué consiste la diferencia clave entre tipos de datos mutables e inmutables?

sobes.tech AI

Respuesta de la IA

La diferencia clave radica en la capacidad de cambiar el valor del objeto después de su creación. Los tipos mutables permiten cambios directos, mientras que los inmutables no. Al "cambiar" un objeto inmutable, en realidad se crea un nuevo objeto con un valor nuevo.

Ejemplos:

Tipos mutables:

  • Array
  • Object
// Ejemplo mutable (Array)
let mutableArray = [1, 2];
mutableArray.push(3); // Modifica el array existente
console.log(mutableArray); // Mostrará: [1, 2, 3]
// Ejemplo mutable (Object)
let mutableObject = { a: 1 };
mutableObject.b = 2; // Modifica el objeto existente
console.log(mutableObject); // Mostrará: { a: 1, b: 2 }

Tipos inmutables:

  • String
  • Number
  • Boolean
  • null
  • undefined
  • Symbol
  • BigInt
// Ejemplo inmutable (String)
let immutableString = "hola";
immutableString = immutableString + " mundo"; // Se crea una nueva cadena
console.log(immutableString); // Mostrará: hola mundo

// La comparación de referencias mostrará la diferencia
let str1 = "abc";
let str2 = str1.toUpperCase();
console.log(str1 === str2); // Mostrará: false
// Ejemplo inmutable (Number)
let immutableNumber = 10;
immutableNumber = immutableNumber + 5; // Se crea un nuevo valor numérico
console.log(immutableNumber); // Mostrará: 15

Comparación:

Característica Mutables Inmutables
Cambio Es posible después de crear No es posible después de crear
Nueva referencia Permanece igual Se crea una nueva al "cambiar"

Comprender esta diferencia es crucial para la predictibilidad del código, el trabajo con estados (por ejemplo, en React con Redux) y la optimización. El uso de datos inmutables simplifica la depuración, facilita la implementación de funciones de deshacer (undo) y optimiza el renderizado en frameworks de UI mediante comparaciones simples de referencias.