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:
ArrayObject
// 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:
StringNumberBooleannullundefinedSymbolBigInt
// 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.