294
Rozdział 7.
Rozmyślania o typach
Gdzieś tam jest ukryta prawda…
Teraz, kiedy już zdobyłeś spore doświadczenie w korzystaniu z typów
dostępnych w języku JavaScript — a jak wiesz, są to typy proste,
takie jak liczby, łańcuchy znaków oraz wartości logiczne, jak również
obiekty i to zarówno te dostarczane przez sam język (takie jak
Math
)
lub przeglądarkę (jak obiekt
document
), jak i te pisane przez Ciebie —
czyż nie wygrzewasz się w promieniach prostego, potężnego i spójnego
systemu typów JavaScriptu?
Liczby
AK\^YľMS
logiczne
ĦKĩM_MRc
znaków
Typy proste
Obiekty
Car
Dog
Song
Element
7K^R
.YM_WOX^
JavaScript udostępnia także wiele użytecznych
obiektów, jednak można też tworzyć własne lub
korzystać z obiektów tworzonych przez innych
programistów.
Te typy są dostarczane
przez sam język JavaScript.
Proste typy niskiego poziomu,
służące do reprezentacji liczb,
łańcuchów znaków i wartości
logicznych.
Obiekty wysokiego poziomu,
używane do reprezentacji rzeczy
i zagadnień należących do dziedziny
rozwiązywanego problemu.
No bo w końcu czego innego mógłbyś się spodziewać po języku, który
w Sieciowicach został wybrany na oficjalny język programowania? Jeśli
byłeś jedynie skromnym autorem prostych skryptów, możesz pomyśleć
o wyprostowaniu pleców, zrobieniu sobie martini z Sieciowic i dobrze
zasłużonej przerwy…
Jednak nie jesteś skromnym autorem skryptów i wiesz, że czegoś Ci
brakuje. Masz to przeszywające uczucie, że za drewnianymi płotami
Sieciowic dzieje się coś bardzo dziwnego. Widziałeś raporty donoszące,
że widziano łańcuchy znaków zachowujące się jak obiekty, czytałeś na
blogach wpisy o (prawdopodobnie radioaktywnym) typie
null
, słyszałeś
też plotki o tym, że interpreter JavaScriptu robił ostatnio jakieś dziwne
rzeczy z konwersjami typów. Co to wszystko oznacza? Tego nie wiemy,
lecz gdzieś tam jest ukryta prawda i w tym rozdziale zamierzamy ją
odkryć… Może się jednak okazać, że wywróci ona do góry nogami
Twoje poglądy na temat tego, co jest prawdą, a co fałszem.
jesteś tutaj
295
Typy, równość, konwersje i cały ten jazz
.LPMHVWHP"
Grupa wartości JavaScript oraz niezaproszonych gości, przebrana w kostiumy,
bawi się w grę towarzyską o nazwie „Zgadnij, kim jestem”. Wszyscy podają
podpowiedź, a Ty na jej podstawie starasz się powiedzieć, kim jest dana
osoba. Możesz założyć, że zawsze mówią o sobie prawdę. Narysuj strzałkę od
zdania do nazwy uczestnika zabawy. Dla ułatwienia narysowaliśmy już jedną
strzałkę. Porównaj swoje odpowiedzi z naszymi, zamieszczonymi pod koniec
rozdziału.
Jeśli okaże się, że to ćwiczenie jest trochę trudne, możesz oszukać i zerknąć na
odpowiedzi.
Jestem zwracana przez funkcję, w której nie ma instrukcji return.
Jestem wartością zmiennej, kiedy nie zostałam do niej przypisana.
Jestem wartością elementu, który nie istnieje w tablicy rzadkiej.
Jestem wartością nieistniejącej właściwości.
Jestem wartością usuniętej właściwości.
Jestem wartością, której nie można przypisać właściwości podczas
tworzenia obiektu.
zero
pusty obiekt
null
undefined
NaN
Infinity
Obszar 51
... _ _ _ ...
{}
[]
Get Programowanie w JavaScript Rusz głową! now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.