Mutable og uforanderlige data i JavaScript

Mutable og uforanderlige data i JavaScript
Begrepet mutabilitet betyr endres; Konseptet med mutabilitet kan bare brukes på objekter og matriser i JavaScript. Mutabilitetens konsept kan ikke brukes på primitive data som streng, boolsk, antall osv. Mens uforanderlige data refererer til primitive data hvis tilstand ikke kan endres. I dette innlegget vil vi forstå forskjellen mellom mutable data og uforanderlige data ved hjelp av noen eksempler.

Før vi drar mot mutable eller uforanderlige data, må vi i utgangspunktet avklare konseptet med lagring av data i JavaScript -variabler. Variablene i JavaScript er i stand til å lagre to typer verdier enten primitiv type eller referansetype.

Totalt syv primitive datatyper er tilgjengelige i JavaScript, mens det er tre referansedatatyper. Hovedforskjellen mellom dem er, i primitiv datatype blir minnet tildelt i bunken, mens i referansedatatype er minnet tildelt i haugen. Så kort sagt, den primitive datatypen er basedatatypen, mens referansedatatypen er objektet som består av flere funksjoner, og disse objektene sendes som referanse.

Mutable data i JavaScript

Mutable objekter kan modifiseres eller revideres etter opprettelsen, men må huske, et objekt kan ha to referanser, og det er også mulig at det er to objekter med de samme egenskapene. Så flere referanser for ett objekt og to objekter med lignende egenskaper er to forskjellige ting.

Implementering av mutable data i JavaScript

La oss vurdere et eksempel for å forstå mutabiliteten i JavaScript.

La ansatt1 = navn: "Joe Clarke", alder: 35, id: 123, by: 'London';
La ansatt2 = ansatt1;
La ansatt3 = navn: "Joe Denly", alder: 25, id: 121, by: 'Birmingham';
konsoll.Logg ("Sjekk om ansatt1 = ansatt2", ansatt1 === ansatt 2);
konsoll.Logg ("Sjekk om ansatt1 = ansatt3", ansatt1 === ansattes3);

Vi opprettet et objekt som heter “Ansatt1” og tildelte det noen egenskaper, i den andre linjen opprettet vi en variabel “Ansatt2” og tildelte den variabelen “Ansatt1” som betyr “Ansatt2”Ville ha de samme egenskapene som “Ansatt1”.

Etterpå lager vi en annen variabel med navnet på “Ansatt3” og vi tildeler det noen forskjellige egenskaper.

Til slutt sjekket vi om “Ansatt2” og “Ansatt3” har de samme egenskapene som “Ansatt1” eller ikke.

Utgangen fra ovennevnte kode vil være:

La oss nå se hva som skjer hvis vi endrer verdien av "ansatt1", vil det påvirke egenskapene til "ansatt2"?

La oss endre koden vår:

La ansatt1 = navn: "Joe Clarke", alder: 35, id: 123, by: 'London';
La ansatt2 = ansatt1;
Ansatt1.name = "Dean Elgar";
konsoll.logg ("Oppdaterte verdier av ansatt1:", ansatt1);
konsoll.logg ("Oppdaterte verdier av ansatt2:", ansatt2);

La oss sjekke om det påvirker navnegenskapen til ansatt2 eller ikke.

Utgangen for vår modifiserte kode vil være:

Fra ovennevnte produksjon kan vi se at endringer vi gjør i eiendommen til “Ansatt1”Har påvirket verdien av“Ansatt2" også. Dette skjer fordi "Ansatt2”Ble opprettet med referansen til “Ansatt1”.

Uforanderlige data i JavaScript

Uforanderlighet refererer til de primitive verdiene som streng, eller tall osv. Og i JavaScript kan vi ikke endre dem, men vi kan tilordne dem med noen nye verdier.

Implementering av uforanderlige data i JavaScript

Det undergitte eksemplet vil hjelpe deg å forstå de uforanderlige datatypene.

var ansatt1 = 'Daniel';
var ansatt2 = ansatt1;
konsoll.Logg ("Navn på første ansatt:", ansatt1);
konsoll.Logg ("Navn på andre ansatt:", ansatt2);

Vi opprettet en variabel og tildelte en verdi til den. Deretter opprettet vi en annen variabel og tildelte den den første variabelen som fremhevet i det giske skjermbildet under.

La oss nå undersøke utgangen, du vil se at begge variablene viser samme utgang:

Nå endre verdien av "Ansatt1”Og observere, vil det endre verdien av“Ansatt2”I tillegg eller forblir den samme:

var ansatt1 = 'Daniel';
var ansatt2 = ansatt1;
konsoll.Logg ("Navn på første ansatt:", ansatt1);
konsoll.Logg ("Navn på andre ansatt:", ansatt2);
var ansatt1 = 'Bryn';
konsoll.Logg ("Oppdatert navn på 1. ansatt:", ansatt1);
konsoll.Logg ("Oppdatert navn på 2. ansatt:", Ansatt2);

Nå, observer utgangen:

Eksemplet tydeliggjør at når vi endrer verdien av Ansatt1, Det påvirker ikke verdien av den andre variabelen, noe som betyr at JavaScript behandler dem begge som separate variabler.

Konklusjon

Mutable data kan endres når som helst, mens uforanderlige data strider mot de mutable dataene, da de ikke kan endres. I dette innlegget forklarte vi forskjellen mellom primitive datatyper og referansetyper. Da forsto vi ideen om mutable og uforanderlige data, for dette formålet tok vi noen eksempler og implementerte dem i JavaScript. Til slutt kan vi konkludere med at hvis vi endrer en verdi av referansevariabelen, vil den også mutere den opprinnelige verdien, men den primitive variabelen muterer ikke.