Forklar JavaScript Records?

Forklar Javascript Records



JavaScript kommer med den ikke-primitive datatype ' Objekt ” som er afledt ved hjælp af primitive (indbyggede) datatyper. 'Objektet' fungerer som en instans til at få adgang til JavaScript-medlemmerne. Det bruges til at påkalde JavaScript-funktionen til at udføre den specifikke opgave, som de primitive datatyper ikke kan. En ulempe ved denne datatype er imidlertid, at den udfører sammenligningsoperationen på grundlag af dens identitet, ikke indholdet. For at løse dette problem tilbyder JavaScript den nye datatype ' Optegnelser ”, da den strengt sammenligner på grundlag af dets indhold, ikke identitet.

Denne vejledning forklarer JavaScript Records.







Hvad er 'Records'?

JavaScript ' Optegnelser ” er en ny primitiv type (strenge, tal, symboler) svarende til den indbyggede . Den eneste forskel er, at 'Records' er rent uforanderlige, dvs. værdien af ​​deres nøgler kan ikke ændres, når de først er blevet initialiseret.



Syntaks



Syntaksen for ' Optage ' er identisk med et 'objekt', men det kræver et ' # (hash)' symbol før de krøllede seler, der angiver det som 'Record':





const recoredName = #{
/*
nøgle: værdi
/*
}


Lad os bruge ovennævnte syntaks til at oprette en ny post.

Hvordan opretter man poster?

For at oprette en post skal du angive '#(hash)'-symbolet i begyndelsen af ​​de krøllede parenteser som vist i nedenstående kodeblok:



konstperson = #{
fnavn: 'Eller' ,
lnavn: 'Usman' ,
alder: enogtyve ,
}
console.log ( person.fname )
console.log ( person.lnavn )
console.log ( person.alder )


I ovenstående kodeblok:

    • Det ' person ' refererer til en ny 'Record' med følgende taster 'fname', 'lname' og 'age'.
    • Dernæst ' konsol. log() ”-metoden viser ”person”-nøgleværdierne henholdsvis én efter én.

Bemærk: Brugeren kan også angive 'Records'-indholdet på én linje som denne:

konstperson = #{fname: 'Ali', lname: 'Usman', alder: 21}


Produktion


Det kan ses, at outputtet viser alle nøgleværdierne for den oprettede Record 'person'.

Begrænsning af registreringer

'Record' accepterer ikke et 'Array' og et 'Objekt' som dens nøgle. Hvis brugeren videregiver dem til en post, genererer compileren en ' Typefejl ”. Følgende kodeblok viser det praktisk talt:

const newRecord = #{
arr: [ 'HTML' , 'CSS' , 'JavaScript' ]
}
console.log ( person.arr )


I ovenstående kodelinjer:

    • Det ' ny rekord ” initialiserer et array med navnet “arr” som dens nøgle.
    • Dernæst ' konsol. log() ' viser 'arr'-nøgleværdien angivet i 'newRecord'.

Produktion


Konsollen viser 'TypeError (passer uventet type)', fordi 'Records' ikke accepterer et array som en nøgle.

Forstå JavaScript-registreringer ved hjælp af eksempler

Dette afsnit omfatter anvendelsen af ​​'Records' praktisk talt ved hjælp af givne eksempler.

Lad os starte med det første eksempel.

Eksempel 1: Optegnelser er dybt uforanderlige

JavaScript ' Optegnelser ” er dybt uforanderlige primitive typer. Den 'dybt uforanderlige' betyder, at alle nøgleværdierne i en post ikke kan ændres eller ændres på noget niveau, når de først er blevet indstillet. De 'primitive' typer betegner alle de grundlæggende JavaScript-datatyper såsom streng, tal, null, udefineret og mange andre.

Følgende kodeblok viser praktisk talt det angivne koncept:

const myRecord = #{
navn: 'Eller' ,
alder: enogtyve ,
}
myRecord.name= 'Haroon'


I ovenstående kodeblok er ' min Record 'tast' navn ”-værdien ændres efter initialiseringen.

Produktion


Det kan observeres, at compileren viser 'TypeError' ved ændring af nøgleværdien 'newRecord'.

Eksempel 2: Optegnelser er sammenlignelige

Den største fordel ved 'Records' er, at de sammenlignes på grundlag af deres værdier, ikke identitet. Hvorimod 'Objekterne' sammenligner efter deres identiteter, ikke værdier. Hvis to Records-værdier er ens, henter compileren sand.

Lad os se det praktisk talt ved hjælp af givne kodelinjer:

const myRecord = #{
navn: 'Eller' ,
alder: enogtyve ,
}
console.log ( myRecord === #{
navn: 'Eller' ,
alder: enogtyve ,
} ) ;


Her opretter ovenstående kodestykke to poster, der sammenlignes ved hjælp af ' streng ligestilling (===)” operatør.

Produktion


Udgangen returnerer en ' rigtigt ” Boolesk værdi, som betyder, at de angivne operatorer, dvs. ”Records” er ens.

Eksempel 3: Konverter post til objekt

JavaScript 'Records' kan også konverteres til en 'Object' datatype ved hjælp af 'Object' konstruktøren. Her er dens praktiske implementering:

lade myRecord = #{ En: 1, To: 2 }
console.log ( Objekt ( min Record ) )
console.log ( type myRecord )


I ovenstående kodelinjer:

    • Den første ' lconsole.og() '-metoden bruger 'Objekt'-konstruktøren til at konvertere ' min Record ' til et 'objekt.
    • Den anden 'console.log()'-metode bruger ' type ” nøgleord for at kontrollere typen af ​​“myRecord”.

Produktion


Outputtet viser den konverterede 'newRecord' som en ' Objekt ” type, som bekræfter, at “newRecord” er konverteret til et “objekt”.

Eksempel 4: Konverter objekt til optagelse

Brugeren kan også konvertere 'Objekt' til 'Record' til sammenligningsformål ved hjælp af ' Optage() ” metode. Lad os gøre det praktisk talt:

lade minObj = { En: 1 , to: 2 }
lade myRecord = Record ( minObj )
console.log ( min Record )


Nu bruger ovenstående kodestykke ' Optage() ” metode til at konvertere det givne “myObj” objekt til “myRecord”.

Produktion


Outputtet viser det konverterede objekt 'myObj' til 'myRecord'-indhold med succes.

Eksempel 5: Opret nye poster fra eksisterende poster

Som diskuteret i det første eksempel er 'Records' uforanderlige, dvs. deres nøgleværdier kan ikke ændres. Brugeren kan dog oprette en ny 'Record' fra den eksisterende 'Record' sammen med tilføjelsen af ​​nogle andre værdier.

Følg det givne kodestykke for at oprette en ny post fra den eksisterende:

lade oldRecord = #{A: 1, B: 2 };
lade ny rekord = #{ ...myRecord, C: 3, D:4}
console.log ( ny rekord )


I ovenstående JavaScript-kode:

    • Det ' gammel rekord ” refererer til en eksisterende post med to nøgleværdier.
    • Dernæst ' ny rekord ” svarer til en ny Record, der oprettes ved hjælp af den eksisterende “oldRecord” og også ved at tilføje de nye specificerede nøgleværdier.
    • Til sidst, ' konsol. log() ' viser den nyoprettede post med navnet 'newRecord'.

Produktion


Outputtet viser alle nøgleværdierne for den nyoprettede post.

Eksempel 6: Få adgang til poster ved hjælp af metoden 'Object.keys()'.

Brugeren kan bruge det indbyggede JavaScript ' nøgler() 'metode til' Objekt ” for at få adgang til nøglerne til en post. I dette scenarie bruges det til at få adgang til 'myRecord'-tasterne:

lade myRecord = #{A: 1, B: 2 };
lade recordKeys = Objekt.nøgler ( min Record ) ;
console.log ( optagenøgler )


Ovenstående kodestykke bruger ' Object.keys() ”-metoden for at få adgang til alle de nøgler, der findes i “myRecord”.

Produktion


Outputtet viser alle nøglerne til 'myRecord' i array-formatet og også med deres indekser i et nøgleværdi-parformat.

Konklusion

JavaScript ' Optegnelser ” er datatypen på avanceret niveau, der er dybt uforanderlig. Det fungerer på samme måde som et 'objekt', men den største forskel er, at dets værdi kan ændres eller opdateres, når det er blevet indstillet. Det kræver et '#(hash)'-symbol før de krøllede klammer for erklæringen, ellers fungerer det som et objekt. Denne vejledning forklarede kort datatypen JavaScript Records.