Datos mutables e inmutables en JavaScript

Datos mutables e inmutables en JavaScript
El término mutabilidad significa cambiar; El concepto de mutabilidad solo se puede aplicar a objetos y matrices en JavaScript. El concepto de mutabilidad no se puede aplicar a datos primitivos como cadena, booleano, número, etc. Mientras que los datos inmutables se refieren a datos primitivos cuyo estado no se puede cambiar. En esta publicación, comprenderemos la diferencia entre datos mutables y datos inmutables con la ayuda de algunos ejemplos.

Antes de dirigirnos hacia datos mutables o inmutables, inicialmente, necesitamos aclarar el concepto de almacenar datos en las variables de JavaScript. Las variables en JavaScript son capaces de almacenar dos tipos de valores de tipo primitivo o tipo de referencia.

Un total de siete tipos de datos primitivos están disponibles en JavaScript, mientras que hay tres tipos de datos de referencia. La principal diferencia entre ellos es, en el tipo de datos primitivos, la memoria se asigna en la pila, mientras que en el tipo de datos de referencia se asigna la memoria en el montón. Entonces, en resumen, el tipo de datos primitivos es el tipo de datos base, mientras que el tipo de datos de referencia es el objeto compuesto por varias características y estos objetos se pasan como referencia.

Datos mutables en JavaScript

Los objetos mutables se pueden modificar o revisar después de su creación, pero deben recordar, un objeto puede tener dos referencias, y también es posible que haya dos objetos con las mismas propiedades. Entonces, múltiples referencias para un objeto y dos objetos con características similares son dos cosas diferentes.

Implementación de datos mutables en JavaScript

Consideremos un ejemplo para comprender la mutabilidad en JavaScript.

Deje que el empleado1 = nombre: "Joe Clarke", edad: 35, id: 123, ciudad: 'Londres';
Deje que el empleado2 = empleado1;
Deje que el empleado3 = nombre: "Joe Denly", edad: 25, id: 121, ciudad: 'Birmingham';
consola.Log ("Compruebe si Empleado1 = Empleado2", Empleado1 === Empleado2);
consola.Log ("Compruebe si Empleado1 = Empleado3", Empleado1 === Empleado3);

Creamos un objeto llamado "Empleado1" y le asignamos algunas propiedades, en la segunda línea creamos una variable "Empleado2" y lo asignó la variable "Empleado1" lo que significa el "empleado2"Tendría las mismas propiedades que la "Empleado1".

Luego, creamos otra variable con el nombre de "Empleado3" y le asignamos algunas propiedades diferentes.

Por último, verificamos si "Empleado2" y "Empleado3" tiene las mismas propiedades que "Empleado1" O no.

La salida del código anterior será:

Ahora, veamos qué sucede si cambiamos el valor de "Empleado1", afectará las propiedades de "Empleado2"?

Vamos a modificar nuestro código:

Deje que el empleado1 = nombre: "Joe Clarke", edad: 35, id: 123, ciudad: 'Londres';
Deje que el empleado2 = empleado1;
empleado1.nombre = "Dean Elgar";
consola.log ("Valores actualizados de Empleado1:", Empleado1);
consola.log ("Valores actualizados de Empleado2:", Empleado2);

Verifiquemos si afecta la propiedad de nombre de Empleado2 o no.

La salida de nuestro código modificado será:

Desde la salida dada anteriormente, podemos ver que los cambios que realizamos en la propiedad de "empleado1"Ha afectado el valor de"empleado2" también. Esto sucede porque "empleado2"Fue creado con la referencia de "Empleado1".

Datos inmutables en JavaScript

La inmutabilidad se refiere a los valores primitivos como la cadena o el número, etc. y en JavaScript, no podemos modificarlos, pero podemos reasignarlos con algunos valores nuevos.

Implementación de datos inmutables en JavaScript

El ejemplo dado a continuación lo ayudará a comprender los tipos de datos inmutables.

var empleado1 = 'daniel';
var empleado2 = empleado1;
consola.log ("Nombre del primer empleado:", Empleado1);
consola.log ("Nombre del segundo empleado:", Empleado2);

Creamos una variable y le asignamos un valor. Luego creamos otra variable y la asignamos la primera variable como se resalta en la captura de pantalla dada por debajo.

Ahora examinemos la salida, verá que ambas variables muestran la misma salida:

Ahora cambie el valor de "empleado1"Y observar, ¿cambiará el valor de"empleado2"También sigue siendo el mismo:

var empleado1 = 'daniel';
var empleado2 = empleado1;
consola.log ("Nombre del primer empleado:", Empleado1);
consola.log ("Nombre del segundo empleado:", Empleado2);
var empleado1 = 'Bryn';
consola.log ("Nombre actualizado del primer empleado:", Empleado1);
consola.log ("Nombre actualizado del segundo empleado:", Empleado2);

Ahora, observe la salida:

El ejemplo aclara que cuando cambiamos el valor de empleado1, No afecta el valor de la segunda variable, lo que significa que JavaScript los trata a ambos como variables separadas.

Conclusión

Los datos mutables se pueden modificar en cualquier punto, mientras que los datos inmutables se contradicen con los datos mutables, ya que no se pueden cambiar. En esta publicación, explicamos la diferencia entre los tipos de datos primitivos y los tipos de referencia. Luego entendimos la idea de datos mutables e inmutables, para este propósito tomamos algunos ejemplos y los implementamos en JavaScript. Finalmente, podemos concluir que si cambiamos un valor de la variable de referencia también mutará el valor original, pero la variable primitiva no muta.