JavaScript jest dostarczany z nieprymitywnym typem danych „ Obiekt ”, który jest wyprowadzany za pomocą prymitywnych (wbudowanych) typów danych. „Obiekt” działa jako instancja dostępu do członków JavaScript. Służy do wywołania funkcji JavaScript w celu wykonania określonego zadania, którego nie mogą wykonać prymitywne typy danych. Jednak jedną wadą tego typu danych jest to, że wykonuje operację porównania na podstawie swojej tożsamości, a nie zawartości. Aby rozwiązać ten problem, JavaScript oferuje nowy typ danych „ Dokumentacja ”, ponieważ ściśle porównuje się na podstawie treści, a nie tożsamości.
W tym przewodniku wyjaśniono rekordy JavaScript.
Czym są „Rekordy”?
JavaScript “ Dokumentacja ” to nowy typ pierwotny (łańcuchy znaków, liczby, symbole) podobny do wbudowanego . Jedyna różnica polega na tym, że „Rekordy” są całkowicie niezmienne, tj. wartości ich kluczy nie można zmienić po ich zainicjowaniu.
Składnia
Składnia „ Nagrywać ” jest identyczny z „Obiektem”, ale wymaga „ # (hash)” przed nawiasami klamrowymi oznaczającymi go jako „Record”:
stała zapisana nazwa = #{
/*
kluczowa wartość
/*
}
Użyjmy powyższej składni, aby utworzyć nowy rekord.
Jak tworzyć rekordy?
Aby utworzyć rekord, określ symbol „#(hash)” na początku nawiasów klamrowych, jak pokazano w poniższym bloku kodu:
stała osoba = #{
nazwa użytkownika: 'Lub' ,
Imię: 'Usman' ,
wiek: dwadzieścia jeden ,
}
log konsoli ( nazwa.osoby )
log konsoli ( nazwa.osoby )
log konsoli ( osobistość )
W powyższym bloku kodu:
-
- „ osoba ” odnosi się do nowego „Rekordu” zawierającego następujące klucze „fname”, „lname” i „age”.
- Następnie „ konsola. dziennik() ” wyświetla kolejno wartości klucza „person”.
Notatka: Użytkownik może również określić zawartość „Rekordów” w jednym wierszu w następujący sposób:
stała osoba = #{fname: 'Ali', lname: 'Usman', wiek: 21}
Wyjście
Można zauważyć, że na wyjściu wyświetlane są wszystkie kluczowe wartości utworzonego Rekordu „osoba”.
Ograniczenie zapisów
„Rekord” nie akceptuje „Tablicy” i „Obiektu” jako swojego klucza. Jeśli użytkownik przekaże je do rekordu, kompilator wygeneruje „ Błąd typu ”. Poniższy blok kodu pokazuje to praktycznie:
const nowyRekord = #{miejsce: [ „HTML” , „CSS” , „JavaScript” ]
}
log konsoli ( osoba.arr )
W powyższych liniach kodu:
-
- „ nowy rekord ” inicjuje tablicę o nazwie „arr” jako swój klucz.
- Następnie „ konsola. dziennik() ” wyświetla wartość klucza „arr” określoną w „newRecord”.
Wyjście
Konsola wyświetla „TypeError (przekazanie nieoczekiwanego typu)”, ponieważ „Rekordy” nie akceptują tablicy jako klucza.
Zrozumienie rekordów JavaScript na podstawie przykładów
Ta sekcja obejmuje zastosowania „Rekordów” praktycznie za pomocą podanych przykładów.
Zacznijmy od pierwszego przykładu.
Przykład 1: Rekordy są głęboko niezmienne
JavaScript “ Dokumentacja ” są głęboko niezmiennymi prymitywnymi typami. „Głęboko niezmienne” oznacza, że wszystkie kluczowe wartości Rekordu nie mogą być modyfikowane ani zmieniane na żadnym poziomie po ich ustawieniu. Typy „prymitywne” oznaczają wszystkie podstawowe typy danych JavaScript, takie jak string, number, null, undefined i wiele innych.
Poniższy blok kodu pokazuje w praktyce podaną koncepcję:
const mójRekord = #{nazwa: 'Lub' ,
wiek: dwadzieścia jeden ,
}
myRecord.name= „Haroon”
W powyższym bloku kodu „ mój rekord ' klucz ' nazwa ” wartość jest modyfikowana po jej zainicjowaniu.
Wyjście
Można zauważyć, że kompilator pokazuje „TypeError” podczas modyfikowania wartości klucza „newRecord”.
Przykład 2: Rekordy są porównawcze
Główną zaletą „Rekordów” jest to, że porównuje się je na podstawie wartości, a nie tożsamości. Natomiast „Obiekty” porównuje się według ich tożsamości, a nie wartości. Jeśli dwie wartości rekordów są równe, kompilator zwraca wartość true.
Zobaczmy to praktycznie za pomocą podanych linijek kodu:
const mójRekord = #{nazwa: 'Lub' ,
wiek: dwadzieścia jeden ,
}
log konsoli ( mój rekord === #{
nazwa: 'Lub' ,
wiek: dwadzieścia jeden ,
} ) ;
Tutaj powyższy fragment kodu tworzy dwa rekordy, które są porównywane za pomocą „ ścisła równość (===)”.
Wyjście
Dane wyjściowe zwracają „ PRAWDA ” Wartość logiczna, która oznacza, że określone operatory, tj. „Rekordy” są sobie równe.
Przykład 3: Konwertuj rekord na obiekt
„Rekordy” JavaScript można również przekonwertować na typ danych „Object” za pomocą konstruktora „Object”. Oto jego praktyczna realizacja:
pozwalać mój rekord = #{ Jeden: 1, Dwa: 2}log konsoli ( Obiekt ( mój rekord ) )
log konsoli ( typeof myRecord )
W powyższych liniach kodu:
-
- Pierwszy ' lconsole.and() ” używa konstruktora „Object” do konwersji „ mój rekord ” w „obiekt.
- Druga metoda „console.log()” wykorzystuje metodę „ typ ”, aby sprawdzić typ „myRecord”.
Wyjście
Dane wyjściowe pokazują przekonwertowany „newRecord” jako „ Obiekt ”, który potwierdza, że „newRecord” został pomyślnie przekonwertowany na „obiekt”.
Przykład 4: Konwertuj obiekt na zapis
Użytkownik może również przekonwertować „Obiekt” na „Nagraj” w celu porównania za pomocą „ Nagrywać() ' metoda. Zróbmy to praktycznie:
pozwalać mójObj = { Jeden: 1 , Dwa: 2 }pozwalać mójRekord = Rekord ( mójObj )
log konsoli ( mój rekord )
Teraz powyższy fragment kodu używa „ Nagrywać() ” do konwersji podanego obiektu „myObj” na „myRecord”.
Wyjście
Dane wyjściowe pomyślnie pokazują przekonwertowany obiekt „myObj” na treść „myRecord”.
Przykład 5: Utwórz nowe rekordy z istniejących rekordów
Jak omówiono w pierwszym przykładzie, „Rekordy” są niezmienne, tj. ich wartości kluczy nie mogą być modyfikowane. Jednak użytkownik może utworzyć nowy „Rekord” z istniejącego „Rekordu” wraz z dodaniem innych wartości.
Postępuj zgodnie z podanym fragmentem kodu, aby utworzyć nowy rekord z istniejącego:
pozwalać stary rekord = # {A: 1, B: 2};pozwalać nowyRekord = #{ ...mójRekord, C: 3, D:4}
log konsoli ( nowy rekord )
W powyższym kodzie JavaScript:
-
- „ stary rekord ” odnosi się do istniejącego rekordu mającego dwie kluczowe wartości.
- Dalej „ nowy rekord ” odpowiada nowemu rekordowi, który jest tworzony za pomocą istniejącego „starego rekordu”, a także poprzez dodanie nowych określonych wartości klucza.
- Wreszcie „ konsola. dziennik() ” wyświetla nowo utworzony rekord o nazwie „newRecord”.
Wyjście
Dane wyjściowe wyświetlają wszystkie kluczowe wartości nowo utworzonego Rekordu.
Przykład 6: Dostęp do rekordów przy użyciu metody „Object.keys()”.
Użytkownik może skorzystać z wbudowanego JavaScript „ Klucze() ' metoda ' Obiekt ”, aby uzyskać dostęp do klawiszy Rekordu. W tym scenariuszu służy do uzyskiwania dostępu do kluczy „myRecord”:
pozwalać mój rekord = # {A: 1, B: 2};pozwalać recordKeys = Object.keys ( mój rekord ) ;
log konsoli ( rekordKlucze )
Powyższy fragment kodu wykorzystuje „ Obiekt.keys() ”, aby uzyskać dostęp do wszystkich kluczy obecnych w „myRecord”.
Wyjście
Dane wyjściowe pokazują wszystkie klucze „myRecord” w formacie tablicowym, a także ich indeksy w formacie pary klucz-wartość.
Wniosek
JavaScript “ Dokumentacja ” to typ danych na poziomie zaawansowanym, który jest głęboko niezmienny. Działa podobnie do „obiektu”, ale główna różnica polega na tym, że jego wartość można zmienić lub zaktualizować po jej ustawieniu. Wymaga symbolu „# (hash)” przed nawiasami klamrowymi dla deklaracji, w przeciwnym razie działa jako obiekt. W tym przewodniku pokrótce wyjaśniono typ danych JavaScript Records.