JavaScript-records uitleggen?

Javascript Records Uitleggen



JavaScript wordt geleverd met het niet-primitieve gegevenstype ' Voorwerp ” die is afgeleid met behulp van primitieve (ingebouwde) gegevenstypen. Het 'Object' fungeert als een instantie om toegang te krijgen tot de JavaScript-leden. Het wordt gebruikt om de JavaScript-functie aan te roepen om de specifieke taak uit te voeren die de primitieve gegevenstypen niet kunnen. Een nadeel van dit gegevenstype is echter dat het de vergelijking uitvoert op basis van zijn identiteit, niet op basis van de inhoud. Om dit probleem op te lossen biedt JavaScript het nieuwe gegevenstype “ Opnames ” zoals het strikt vergelijkt op basis van de inhoud, niet identiteit.

In deze handleiding worden de JavaScript-records uitgelegd.







Wat zijn de 'records'?

javascript ' Opnames ” is een nieuw primitief type (tekenreeksen, cijfers, symbolen) vergelijkbaar met de ingebouwde . Het enige verschil is dat 'Records' puur onveranderlijk zijn, d.w.z. de waarde van hun sleutels kan niet worden gewijzigd nadat ze zijn geïnitialiseerd.



Syntaxis



De syntaxis van ' Dossier ' is identiek aan een 'Object', maar vereist een ' # (hash)'-symbool voor de accolades die het aanduiden als 'Record':





const opgenomenNaam = #{
/*
sleutel waarde
/*
}


Laten we de hierboven vermelde syntaxis gebruiken om een ​​nieuw record te maken.

Hoe records maken?

Om een ​​record aan te maken, specificeert u het '#(hash)'-symbool aan het begin van de accolades, zoals weergegeven in het onderstaande codeblok:



const persoon = #{
fnaam: 'Of' ,
lname: 'Usman' ,
leeftijd: eenentwintig ,
}
console.log ( persoon.fname )
console.log ( persoon.lname )
console.log ( personage )


In het bovenstaande codeblok:

    • De ' persoon ” verwijst naar een nieuwe “Record” met de volgende toetsen “fname”, “lname” en “age”.
    • Vervolgens de “ troosten. logboek() ” geeft de sleutelwaarden van de persoon één voor één weer.

Opmerking: De gebruiker kan ook de inhoud van 'Records' op één regel als volgt specificeren:

const persoon = #{fname: 'Ali', lname: 'Usman', leeftijd: 21}


Uitgang


Het is te zien dat de uitvoer alle sleutelwaarden van de aangemaakte Record 'persoon' weergeeft.

Beperking van records

De 'Record' accepteert geen 'Array' en een 'Object' als sleutel. Als de gebruiker ze doorgeeft aan een record, genereert de compiler een ' TypeError ”. Het volgende codeblok laat het praktisch zien:

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


In de bovenstaande coderegels:

    • De ' nieuw record ” initialiseert een array met de naam “arr” als sleutel.
    • Vervolgens de “ troosten. logboek() ' geeft de 'arr'-sleutelwaarde weer die is opgegeven in de 'newRecord'.

Uitgang


De console geeft de 'TypeError(passing un-expected type)' weer omdat de 'Records' geen array als sleutel accepteert.

JavaScript-records begrijpen aan de hand van voorbeelden

Deze sectie bevat het praktisch gebruik van 'Records' met behulp van gegeven voorbeelden.

Laten we beginnen met het eerste voorbeeld.

Voorbeeld 1: Records zijn diep onveranderlijk

javascript ' Opnames ' zijn diep onveranderlijke primitieve typen. Het 'diep onveranderlijke' betekent dat alle sleutelwaarden van een record op geen enkel niveau kunnen worden gewijzigd of gewijzigd nadat ze zijn ingesteld. De 'primitieve' typen duiden alle standaard JavaScript-gegevenstypen aan, zoals string, nummer, null, ongedefinieerd en vele andere.

Het volgende codeblok toont het vermelde concept praktisch:

const mijnRecord = #{
naam: 'Of' ,
leeftijd: eenentwintig ,
}
mijnRecord.naam= 'Haroon'


In het bovenstaande codeblok, de ' mijnRecord ' sleutel ' naam ” waarde wordt gewijzigd na de initialisatie.

Uitgang


Het kan worden waargenomen dat de compiler de 'TypeError' toont bij het wijzigen van de sleutelwaarde 'newRecord'.

Voorbeeld 2: Records zijn vergelijkend

Het grote voordeel van 'Records' is dat ze worden vergeleken op basis van hun waarden, niet op basis van identiteit. Terwijl de 'Objecten' vergelijken op basis van hun identiteit, niet op basis van waarden. Als twee Records-waarden gelijk zijn, haalt de compiler true op.

Laten we het praktisch bekijken met behulp van bepaalde regels code:

const mijnRecord = #{
naam: 'Of' ,
leeftijd: eenentwintig ,
}
console.log ( mijnRecord === #{
naam: 'Of' ,
leeftijd: eenentwintig ,
} ) ;


Hier creëert het bovenstaande codefragment twee records die worden vergeleken met behulp van de ' strikte gelijkheid (===)”-operator.

Uitgang


De uitvoer retourneert een ' WAAR ” Booleaanse waarde, wat betekent dat de opgegeven operatoren, d.w.z. 'Records', gelijk zijn.

Voorbeeld 3: Converteer record naar object

JavaScript 'Records' kan ook worden omgezet in een 'Object'-gegevenstype met behulp van de 'Object'-constructor. Hier is de praktische uitvoering:

laten mijnRecord = #{ Een: 1, Twee: 2 }
console.log ( Voorwerp ( mijnRecord ) )
console.log ( type van myRecord )


In de bovenstaande regels code:

    • De eerste ' lconsole.and() ” methode gebruikt de “Object” constructor om de “ mijnRecord 'in een' object.
    • De tweede methode 'console.log()' maakt gebruik van de ' soort van ' trefwoord om het type 'myRecord' te controleren.

Uitgang


De uitvoer toont het geconverteerde 'newRecord' als een ' Voorwerp ' type dat bevestigt dat de 'newRecord' met succes is geconverteerd naar een 'object'.

Voorbeeld 4: Converteer object naar record

De gebruiker kan ook 'Object' naar 'Record' converteren voor vergelijkingsdoeleinden met behulp van de ' Dossier() ” methode. Laten we het praktisch doen:

laten mijnObj = { Een: 1 , Twee: 2 }
laten mijnRecord = Record ( mijnObj )
console.log ( mijnRecord )


Nu gebruikt het bovenstaande codefragment de ' Dossier() '-methode om het gegeven 'myObj' -object naar 'myRecord' te converteren.

Uitgang


De uitvoer toont het geconverteerde object 'myObj' naar 'myRecord' -inhoud met succes.

Voorbeeld 5: nieuwe records maken op basis van bestaande records

Zoals besproken in het eerste voorbeeld, zijn 'Records' onveranderlijk, d.w.z. hun sleutelwaarden kunnen niet worden gewijzigd. De gebruiker kan echter een nieuw 'Record' maken van het bestaande 'Record' naast toevoeging van enkele andere waarden.

Volg het gegeven codefragment om een ​​nieuw record te maken van het bestaande:

laten oudRecord = #{A: 1, B: 2};
laten nieuwRecord = #{ ...myRecord, C: 3, D:4}
console.log ( nieuw record )


In de bovenstaande JavaScript-code:

    • De ' oudRecord ” verwijst naar een bestaand record met twee sleutelwaarden.
    • Vervolgens de “ nieuw record ” komt overeen met een nieuw record dat is gemaakt met behulp van het bestaande “oldRecord” en ook door de nieuwe gespecificeerde sleutelwaarden toe te voegen.
    • Als laatste de “ troosten. logboek() ” geeft het nieuw gemaakte record met de naam 'newRecord' weer.

Uitgang


De uitvoer toont alle sleutelwaarden van het nieuw gemaakte record.

Voorbeeld 6: toegang tot records met de methode 'Object.keys()'.

De gebruiker kan het ingebouwde JavaScript gebruiken “ sleutels() ' methode van ' Voorwerp ” om toegang te krijgen tot de sleutels van een record. In dit scenario wordt het gebruikt om toegang te krijgen tot de 'myRecord' -sleutels:

laten mijnRecord = #{A: 1, B: 2};
laten recordKeys = Object.sleutels ( mijnRecord ) ;
console.log ( opnemenSleutels )


Het bovenstaande codefragment gebruikt de ' Object.keys() '-methode om toegang te krijgen tot alle sleutels die aanwezig zijn in de 'myRecord'.

Uitgang


De uitvoer toont alle sleutels van de 'myRecord' in het array-formaat en ook met hun indexen in een sleutel-waarde-paarformaat.

Conclusie

javascript ' Opnames ” zijn het gegevenstype op geavanceerd niveau dat diep onveranderlijk is. Het werkt op dezelfde manier als een 'Object', maar het belangrijkste verschil is dat de waarde kan worden gewijzigd of bijgewerkt zodra deze is ingesteld. Het vereist een '#(hekje)'-symbool vóór de accolades voor de declaratie, anders fungeert het als een object. In deze handleiding werd het gegevenstype JavaScript Records kort uitgelegd.