Explicar els registres de JavaScript?

Explicar Els Registres De Javascript



JavaScript ve amb el tipus de dades no primitius ' Objecte ” que es deriva amb l'ajuda de tipus de dades primitius (incorporats). L''Objecte' actua com una instància per accedir als membres de JavaScript. S'utilitza per invocar la funció JavaScript per realitzar la tasca específica que els tipus de dades primitius no poden. Tanmateix, un desavantatge d'aquest tipus de dades és que realitza l'operació de comparació en funció de la seva identitat, no del contingut. Per resoldre aquest problema JavaScript ofereix el nou tipus de dades ' Registres ', ja que es compara estrictament en funció del seu contingut, no de la identitat.

Aquesta guia explica els registres de JavaScript.







Què són els 'Registres'?

JavaScript ' Registres ” és un nou tipus primitiu (cadenes, números, símbols) similar al integrat . L'única diferència és que els 'Registres' són purament immutables, és a dir, el valor de les seves claus no es pot canviar un cop s'han inicialitzat.



Sintaxi



La sintaxi de ' Registre ” és idèntic a un “Objecte”, però requereix un “ # (hash)” abans de les claus que el denoten com a “Registre”:





const recordedName = #{
/*
clau: valor
/*
}


Utilitzem la sintaxi indicada anteriorment per crear un registre nou.

Com crear registres?

Per crear un registre, especifiqueu el símbol '#(hash)' al començament de les claus tal com es mostra al bloc de codi següent:



const persona = #{
fname: 'O' ,
nom: 'Usman' ,
edat: 21 ,
}
console.log ( persona.fname )
console.log ( persona.lname )
console.log ( persona.edat )


Al bloc de codi anterior:

    • El ' persona ” es refereix a un nou “Registre” que té les tecles següents “fname”, “lname” i “age”.
    • A continuació, el ' consola. registre() ” El mètode mostra els valors de la clau “persona” un per un respectivament.

Nota: L'usuari també pot especificar el contingut 'Registres' en una línia com aquesta:

const persona = #{fname: 'Ali', lname: 'Usman', edat: 21}


Sortida


Es pot veure que la sortida mostra tots els valors clau del registre creat 'persona'.

Limitació de registres

El 'Registre' no accepta una 'Matriu' i un 'Objecte' com a clau. Si l'usuari els passa a un registre, el compilador genera un ' TypeError ”. El següent bloc de codi ho mostra pràcticament:

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


A les línies de codi anteriors:

    • El ' nou Record ” inicialitza una matriu anomenada “arr” com a clau.
    • A continuació, el ' consola. registre() ” mostra el valor de la clau “arr” especificat al “newRecord”.

Sortida


La consola mostra el 'TypeError (passing inesperad type)' perquè els 'Records' no accepta una matriu com a clau.

Entendre els registres de JavaScript amb exemples

Aquesta secció comprèn els usos de 'Registres' pràcticament amb l'ajuda d'exemples donats.

Comencem pel primer exemple.

Exemple 1: els registres són profundament immutables

JavaScript ' Registres ” són tipus primitius profundament immutables. El 'profundament immutable' significa que tots els valors clau d'un Registre no es poden modificar ni canviar a cap nivell un cop s'hagin establert. Els tipus 'primitius' denoten tots els tipus de dades bàsics de JavaScript, com ara cadena, nombre, nul, sense definir i molts altres.

El bloc de codi següent mostra pràcticament el concepte indicat:

const myRecord = #{
nom: 'O' ,
edat: 21 ,
}
myRecord.name= 'Haroon'


Al bloc de codi anterior, el ' myRecord 'tecla' nom ” el valor es modifica després de la seva inicialització.

Sortida


Es pot observar que el compilador mostra el 'TypeError' en modificar el valor de la clau 'newRecord'.

Exemple 2: els registres són comparatius

El principal avantatge dels 'Records' és que es comparen en funció dels seus valors, no de la identitat. Mentre que els 'Objectes' es comparen segons les seves identitats, no segons els valors. Si dos valors de registres són iguals, el compilador recupera true.

Vegem-ho pràcticament amb l'ajuda de línies de codi donades:

const myRecord = #{
nom: 'O' ,
edat: 21 ,
}
console.log ( myRecord === #{
nom: 'O' ,
edat: 21 ,
} ) ;


Aquí, el fragment de codi anterior crea dos registres que es comparen amb l'ajuda del ' igualtat estricta (===)” operador.

Sortida


La sortida retorna un ' veritat ” Valor booleà que significa que els operadors especificats, és a dir, “Registres” són iguals.

Exemple 3: Converteix registre en objecte

Els 'Registres' de JavaScript també es poden convertir en un tipus de dades 'Objecte' amb l'ajuda del constructor 'Objecte'. Aquí teniu la seva implementació pràctica:

deixar myRecord = #{ Un: 1, Dos: 2 }
console.log ( Objecte ( myRecord ) )
console.log ( tipus de myRecord )


A les línies de codi anteriors:

    • El primer ' lconsole.and() El mètode utilitza el constructor 'Objecte' per convertir el ' myRecord ” en un “objecte.
    • El segon mètode 'console.log()' utilitza el ' tipus de ” paraula clau per comprovar el tipus de “myRecord”.

Sortida


La sortida mostra el 'nou registre' convertit com a ' Objecte ” que confirma que el “newRecord” s'ha convertit correctament en un “objecte”.

Exemple 4: Converteix l'objecte en registre

L'usuari també pot convertir 'Objecte' a 'Registre' per a finalitats de comparació amb l'ajuda del ' Registre () ” mètode. Fem-ho pràcticament:

deixar el meuObj = { Un: 1 , Dos: 2 }
deixar myRecord = Registre ( el meuObj )
console.log ( myRecord )


Ara, el fragment de codi anterior utilitza el ' Registre () ” per convertir l'objecte “myObj” donat a “myRecord”.

Sortida


La sortida mostra l'objecte convertit 'myObj' al contingut 'myRecord' amb èxit.

Exemple 5: crear registres nous a partir de registres existents

Com s'ha comentat al primer exemple, els 'Registres' són immutables, és a dir, els seus valors clau no es poden modificar. Tanmateix, l'usuari pot crear un nou 'Registre' a partir del 'Registre' existent juntament amb l'addició d'altres valors.

Seguiu el fragment de codi donat per crear un registre nou a partir de l'existent:

deixar oldRecord = #{A: 1, B: 2};
deixar newRecord = #{ ...myRecord, C: 3, D:4}
console.log ( nou Record )


Al codi JavaScript anterior:

    • El ' oldRecord ” es refereix a un registre existent que té dos valors clau.
    • A continuació el ' nou Record ” correspon a un nou registre que es crea amb l'ajuda del “oldRecord” existent i també afegint els nous valors de clau especificats.
    • Finalment, el ' consola. registre() ” mostra el nou registre creat anomenat “newRecord”.

Sortida


La sortida mostra tots els valors clau del registre recentment creat.

Exemple 6: Accediu als registres mitjançant el mètode 'Object.keys()'.

L'usuari pot utilitzar el JavaScript integrat ' claus() ' mètode de ' Objecte ” per accedir a les claus d'un Registre. En aquest escenari, s'utilitza per accedir a les claus 'myRecord':

deixar myRecord = #{A: 1, B: 2};
deixar recordKeys = Object.keys ( myRecord ) ;
console.log ( RecordKeys )


El fragment de codi anterior utilitza el ' Object.keys() ” per accedir a totes les claus presents al “myRecord”.

Sortida


La sortida mostra totes les claus del 'myRecord' en format matriu i també amb els seus índexs en un format de parella clau-valor.

Conclusió

JavaScript ' Registres ” són el tipus de dades de nivell avançat que és profundament immutable. Funciona de manera similar a un 'Objecte', però la diferència principal és que el seu valor es pot canviar o actualitzar un cop s'hagi configurat. Requereix un símbol '#(hash)' abans de les claus per a la declaració, en cas contrari, actua com un objecte. Aquesta guia va explicar breument el tipus de dades de JavaScript Records.