Dati mutabili e immutabili in JavaScript

Dati mutabili e immutabili in JavaScript

Il termine mutabilità significa mutevole, il concetto di mutabilità può essere applicato solo agli oggetti e ad array in JavaScript. Il concetto di mutabilità non può essere applicato a dati primitivi come stringa, booleano, numero, ecc. Mentre i dati immutabili si riferiscono a dati primitivi il cui stato non può essere modificato. In questo post, capiremo la differenza tra dati mutabili e dati immutabili con l'aiuto di alcuni esempi.

Prima di dirigerci verso dati mutabili o dati immutabili, inizialmente, dobbiamo chiarire il concetto di archiviazione dei dati nelle variabili JavaScript. Le variabili in JavaScript sono in grado di archiviare due tipi di valori o tipo primitivo o tipo di riferimento. Totale sette tipi di dati primitivi sono disponibili in JavaScript mentre ci sono tre tipi di dati di riferimento. La differenza principale tra loro è, nel tipo di dati primitivi, la memoria viene assegnata nello stack mentre nel tipo di dati di riferimento La memoria viene assegnata nel heap. Quindi, in breve, il tipo di dati primitivi è il tipo di dati di base mentre il tipo di dati di riferimento è l'oggetto costituito da diverse funzionalità e questi oggetti vengono passati come riferimento.

Dati mutabili in JavaScript

Gli oggetti mutabili possono essere modificati o rivisti dopo la loro creazione, ma deve ricordare, un oggetto può avere due riferimenti ed è anche possibile che ci siano due oggetti con le stesse proprietà. Quindi, più riferimenti per un oggetto e due oggetti con caratteristiche simili sono due cose diverse.

Implementazione di dati mutabili in JavaScript

Consideriamo un esempio per comprendere la mutabilità in JavaScript.

let dipendente1 = nome: "Joe Clarke", età: 35, id: 123, città: 'London';
let Employee2 = Employee1;
let Employee3 = Nome: "Joe Denly", Età: 25, Id: 121, Città: 'Birmingham';
console.log ("controlla se dipendente1 = dipendente2", dipendente1 === dipendente2);
console.log ("controlla se dipendente1 = dipendente3", dipendente1 === dipendente3);

Abbiamo creato un oggetto denominato dipendente e assegnato alcune proprietà, nella seconda riga è stato creato un altro oggetto chiamato Employee2 e abbiamo assegnato un dipendente IT, il che significa che il dipendente2 avrebbe le stesse proprietà dei dipendenti. Quindi creiamo un altro dipendente e lo assegniamo alcune proprietà diverse. Successivamente, abbiamo verificato se "Employee2" ha le stesse proprietà di "dipendente" o no.

L'output del codice sopra sarà:

Ora, vediamo cosa succede se cambiamo il valore di "Employee1", influenzerà le proprietà di "Employee2"? Modifichiamo il nostro codice:

let dipendente1 = nome: "Joe Clarke", età: 35, id: 123, città: 'London';
let Employee2 = Employee1;
dipendente1.name = "Dean Elgar";
console.log ("valori aggiornati del dipendente1:", dipendente1);
console.log ("valori aggiornati del dipendente2:", dipendente2);

Modifichiamo l'esempio precedente, ad esempio, modifichiamo il nome del dipendente1 da "Joe Clarke" a "Dean Elgar", e controlli se influisce sul nome di proprietà di Employee2 o no.

L'output per il nostro codice modificato sarà:

Dall'output di cui sopra, possiamo vedere che le modifiche che apportiamo nella proprietà dei dipendenti1 influiscono anche sul valore del dipendente2, ciò accade perché i dipendenti sono stati creati con il riferimento di Employee1.

Dati immutabili in JavaScript

L'immutabilità si riferisce ai valori primitivi come la stringa o il numero, ecc. E in JavaScript, non possiamo modificarli ma possiamo riassegnarli con alcuni nuovi valori.

Implementazione di dati immutabili in JavaScript

L'esempio seguente ti aiuterà a comprendere i tipi di dati immutabili.

var dipendente1 = 'Daniel';
VAR Employee2 = Employee1;
console.log ("Nome del primo dipendente:", dipendente1);
console.log ("nome del secondo dipendente:", dipendente2);

Abbiamo creato una variabile e ci abbiamo assegnato un valore. Quindi abbiamo creato un'altra variabile e l'abbiamo assegnata la prima variabile come evidenziata nello screenshot di seguito.

Ora esaminiamo l'output, vedrai che entrambe le variabili mostrano lo stesso output:

Ora modifica il valore di "Employee2" e Observe, cambierà il valore di "Employee1" o il valore per la prima variabile rimarrà lo stesso:

var dipendente1 = 'Daniel';
VAR Employee2 = Employee1;
console.log ("Nome del primo dipendente:", dipendente1);
console.log ("nome del secondo dipendente:", dipendente2);
VAR Employee2 = 'Bryn';
console.log ("Nome aggiornato del 1 ° dipendente:", dipendente1);
console.log ("Nome aggiornato del 2 ° dipendente:", dipendente2);

Assegniamo "Bryn" alla seconda variabile:

Ora, osserva l'output:

L'esempio chiarisce che quando abbiamo modificato il valore del dipendente2, abbiamo osservato che cambiare il nome della seconda variabile non influisce sul valore della prima variabile, il che significa che JavaScript li tratta entrambi come variabili separate e effettivamente riassegna il valore la seconda variabile.

Considereremo un altro esempio per capire i dati immutabili in JavaScript.

var str = "ciao";
console.log ("stringa originale:", str);
str.touppercase ();
console.log ("String dopo il metodo ToupperCase:", STR);

Abbiamo preso una variabile di stringa e abbiamo assegnato un valore "ciao", quindi abbiamo usato un metodo stringa "toupper". All'esecuzione del programma abbiamo osservato che non ha modificato la stringa perché nelle stringhe Javascript sono tipi di dati immutabili e non possono essere modificati dopo la creazione.

L'output del codice sopra dato sarà:

Puoi notare che ToupperCase non cambia le lettere minuscole nelle lettere maiuscole perché non possiamo modificare i dati immutabili dopo la sua creazione.

Conclusione

I dati mutabili possono essere modificati in qualsiasi momento mentre i dati immutabili contraddicono con i dati mutabili, il che significa che le cose mutabili non possono essere modificate. In questo post, abbiamo spiegato la differenza tra tipi di dati primitivi con tipi di riferimento. Quindi comprendiamo l'idea di dati mutabili e immutabili, a questo scopo abbiamo preso alcuni esempi e li abbiamo implementati in JavaScript. Infine, possiamo concludere che se cambiamo un valore della variabile di riferimento, muterà anche il valore originale, ma la variabile primitiva non si muta.