Vysvětlete záznamy JavaScriptu?

Vysvetlete Zaznamy Javascriptu



JavaScript přichází s neprimitivním datovým typem „ Objekt ” který je odvozen pomocí primitivních (vestavěných) datových typů. „Objekt“ funguje jako instance pro přístup k členům JavaScriptu. Používá se k vyvolání funkce JavaScript k provedení specifické úlohy, kterou primitivní datové typy nemohou. Jednou nevýhodou tohoto datového typu je však to, že provádí operaci porovnání na základě své identity, nikoli obsahu. K vyřešení tohoto problému JavaScript nabízí nový datový typ “ Evidence “, protože striktně srovnává na základě svého obsahu, nikoli identity.

Tato příručka vysvětluje záznamy JavaScriptu.







Co jsou to „záznamy“?

JavaScript ' Evidence ” je nový primitivní typ (řetězce, čísla, symboly) podobný vestavěnému . Jediný rozdíl je v tom, že „Záznamy“ jsou čistě neměnné, tj. hodnotu jejich klíčů nelze po inicializaci změnit.



Syntax



Syntaxe „ Záznam “ je identický s „Objektem“, ale vyžaduje „ # (hash)“ před složenými závorkami, které jej označují jako „Záznam“:





const recoredName = #{
/*
klíč: hodnota
/*
}


K vytvoření nového záznamu použijeme výše uvedenou syntaxi.

Jak vytvořit záznamy?

Chcete-li vytvořit záznam, zadejte symbol „#(hash)“ na začátku složených závorek, jak je znázorněno v níže uvedeném bloku kódu:



konst osoba = #{
přezdívka: 'Nebo' ,
jméno: 'usman' ,
stáří: dvacet jedna ,
}
konzole.log ( osoba.jméno )
konzole.log ( osoba.jméno )
konzole.log ( osobnost )


Ve výše uvedeném bloku kódu:

    • ' osoba “ označuje nový „Záznam“ s následujícími klíči „fname“, „lname“ a „age“.
    • Dále, „ řídicí panel. log() Metoda ” zobrazí hodnoty klíče „osoba“ jednu po druhé.

Poznámka: Uživatel může také specifikovat obsah „Záznamy“ v jednom řádku takto:

konst osoba = #{fname: 'Ali', lname: 'Usman', věk: 21}


Výstup


Je vidět, že výstup zobrazuje všechny klíčové hodnoty vytvořeného záznamu „osoba“.

Omezení záznamů

„Záznam“ nepřijímá jako klíč „Pole“ a „Objekt“. Pokud je uživatel předá záznamu, pak kompilátor vygeneruje „ TypeError “. Následující blok kódu to prakticky ukazuje:

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


Ve výše uvedených řádcích kódu:

    • ' nový rekord ” inicializuje pole s názvem „arr“ jako svůj klíč.
    • Dále, „ řídicí panel. log() “ zobrazí hodnotu klíče „arr“ specifikovanou v „newRecord“.

Výstup


Konzole zobrazí „TypeError (předávání neočekávaného typu)“, protože „Záznamy“ nepřijímají pole jako klíč.

Porozumění záznamům JavaScript pomocí příkladů

Tato část obsahuje použití „Záznamů“ prakticky s pomocí uvedených příkladů.

Začněme prvním příkladem.

Příklad 1: Záznamy jsou hluboce neměnné

JavaScript ' Evidence “ jsou hluboce neměnné primitivní typy. Pojem „hluboce neměnný“ znamená, že všechny klíčové hodnoty záznamu nelze po jejich nastavení na žádné úrovni upravovat ani měnit. „Primitivní“ typy označují všechny základní datové typy JavaScriptu, jako je řetězec, číslo, null, nedefinováno a mnoho dalších.

Následující blok kódu prakticky ukazuje uvedený koncept:

const myRecord = #{
název: 'Nebo' ,
stáří: dvacet jedna ,
}
myRecord.name= 'Haroon'


Ve výše uvedeném bloku kódu je „ myRecord 'klíč' název ” hodnota se po inicializaci změní.

Výstup


Lze pozorovat, že kompilátor zobrazuje „TypeError“ při změně hodnoty klíče „newRecord“.

Příklad 2: Záznamy jsou srovnávací

Hlavní výhodou „Záznamů“ je, že jsou porovnávány na základě jejich hodnot, nikoli identity. Zatímco „Objekty“ se porovnávají podle své identity, nikoli podle hodnot. Pokud jsou dvě hodnoty záznamů stejné, kompilátor načte hodnotu true.

Podívejme se na to prakticky pomocí daných řádků kódu:

const myRecord = #{
název: 'Nebo' ,
stáří: dvacet jedna ,
}
konzole.log ( myRecord === #{
název: 'Nebo' ,
stáří: dvacet jedna ,
} ) ;


Zde výše uvedený fragment kódu vytvoří dva záznamy, které jsou porovnány pomocí „ přísná rovnost (===)” operátor.

Výstup


Výstup vrací „ skutečný ” Booleovská hodnota, což znamená, že zadané operátory, tj. „Záznamy“ jsou stejné.

Příklad 3: Převeďte záznam na objekt

JavaScript „Záznamy“ lze také převést na datový typ „Object“ pomocí konstruktoru „Object“. Zde je jeho praktické provedení:

nechat myRecord = #{ Jedna: 1, Dva: 2}
konzole.log ( Objekt ( myRecord ) )
konzole.log ( typ myRecord )


Ve výše uvedených řádcích kódu:

    • První ' lconsole.and() metoda používá konstruktor 'Object' k převodu ' myRecord “ do „objektu.
    • Druhá metoda „console.log()“ využívá „ Typ ” klíčové slovo pro kontrolu typu “myRecord”.

Výstup


Výstup zobrazuje převedený „newRecord“ jako „ Objekt “, který potvrzuje, že „novýZáznam“ byl úspěšně převeden na „objekt“.

Příklad 4: Převést objekt na záznam

Uživatel může také převést „Objekt“ na „Záznam“ pro účely porovnání pomocí „ Záznam() “ metoda. Udělejme to prakticky:

nechat myObj = { Jeden: 1 , dva: 2 }
nechat myRecord = Záznam ( myObj )
konzole.log ( myRecord )


Nyní výše uvedený fragment kódu používá „ Záznam() ” pro převod daného objektu „myObj“ na „myRecord“.

Výstup


Výstup úspěšně zobrazuje převedený objekt „myObj“ na obsah „myRecord“.

Příklad 5: Vytvoření nových záznamů z existujících záznamů

Jak je uvedeno v prvním příkladu, „Záznamy“ jsou neměnné, tj. jejich klíčové hodnoty nelze upravit. Uživatel však může vytvořit nový „Záznam“ ze stávajícího „Záznamu“ spolu s přidáním některých dalších hodnot.

Postupujte podle daného fragmentu kódu a vytvořte nový záznam ze stávajícího:

nechat oldRecord = #{A: 1, B: 2 };
nechat nový záznam = #{ ...můjZáznam, C: 3, D:4}
konzole.log ( nový rekord )


Ve výše uvedeném kódu JavaScript:

    • ' starý záznam ” odkazuje na existující záznam, který má dvě klíčové hodnoty.
    • Dále „ nový rekord “ odpovídá novému záznamu, který je vytvořen pomocí stávajícího „oldRecord“ a také přidáním nových specifikovaných hodnot klíče.
    • Konečně, „ řídicí panel. log() “ zobrazí nově vytvořený záznam s názvem „newRecord“.

Výstup


Výstup zobrazuje všechny klíčové hodnoty nově vytvořeného záznamu.

Příklad 6: Přístup k záznamům pomocí metody „Object.keys()“.

Uživatel může použít vestavěný JavaScript “ klíče() ' metoda ' Objekt ” pro přístup ke klávesám záznamu. V tomto scénáři se používá pro přístup ke klíčům „myRecord“:

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


Výše uvedený fragment kódu používá „ Object.keys() ” pro přístup ke všem klíčům přítomným v “myRecord”.

Výstup


Výstup zobrazuje všechny klíče „myRecord“ ve formátu pole a také s jejich indexy ve formátu páru klíč-hodnota.

Závěr

JavaScript ' Evidence ” jsou datové typy pokročilé úrovně, které jsou hluboce neměnné. Funguje podobně jako „Objekt“, ale hlavní rozdíl je v tom, že jeho hodnotu lze po nastavení změnit nebo aktualizovat. Pro deklaraci vyžaduje symbol „#(hash)“ před složenými závorkami, jinak se chová jako objekt. Tato příručka stručně vysvětlila typ dat Záznamy JavaScriptu.