od Podstaw
9 godz. 20 min · JavaScript · Full-stack i Programowanie
Piotr PalarzWeb DeveloperJavaScript to język programowania, który napędza niemal wszystkie strony internetowe. Dopełnia on technologie HTML i CSS, za pomocą których tworzymy strukturę i wygląd dokumentu. Co jednak w sytuacji, gdy chcemy po kliknięciu w wybrany przycisk wyświetlić powiększone zdjęcie lub wczytać dodatkowe dane z serwera? To właśnie w takich sytuacjach przydaje się język JavaScript i tzw. DOM API, dostępne w przeglądarce. Jak się przekonasz, możliwości nowoczesnych przeglądarek w połączeniu z tym językiem są naprawdę ogromne.
Język JavaScript może być używany nie tylko na stronach internetowych. Z tego powodu, w kursie omówimy najpierw najważniejsze konstrukcje tego języka, które są niezależne od platformy uruchomieniowej. Dzięki temu zbudujesz fundamenty niezbędne do tego, by wykorzystać ten język np. w środowisku Node.js. Krok po kroku omówimy sposoby tworzenia zmiennych, dostępne typy danych i operatory. Następnie zobaczysz jak tworzyć tablice i obiekty, z jakich instrukcji warunkowych i pętli możesz korzystać, a także jak tworzyć własne funkcje. Przekazywana wiedza uwzględniać będzie nowości, które pojawiły się w języku wraz z rewolucyjnym standardem EcmaScript 6 (ES6).
Sam język JavaScript to nie wszystko, by tchnąć ducha w strony internetowe. Z tego powodu, przeglądarki internetowe udostępniają tzw. DOM API. To interfejs, który z użyciem języka JavaScript pozwala na manipulację treścią i wyglądem strony. W kursie bardzo dokładnie omówimy czym jest Obiektowy Model Dokumentu, a także jak z nim pracować. Zobaczysz jak tworzyć nowe elementy HTML i wstawiać je na stronę, jak modyfikować ich treść, atrybuty, style czy klasy CSS. Poznasz sposoby na odczytywanie położenia elementu na stronie i jego wymiarów, które będą niezbędne w wielu sytuacjach. Dowiesz się także, jak przypisywać obsługę zdarzeń w przeglądarce, by np. wywołać własną funkcję, gdy ktoś kliknie w wybrany przez Ciebie przycisk.
JSON to popularny format wymiany danych, a Ajax to potoczna nazwa dla asynchronicznych zapytań HTTP, które wysyłać możemy z poziomu kodu JavaScript. Dziś niemal każda strona internetowa wykorzystuje te technologie. W niektórych przypadkach jako dopełnienie podstawowej funkcjonalności witryny, a w innych jako główny motor napędzający stronę. Jeśli kiedykolwiek widziałeś, jak na stronie internetowej jakaś treść "doczytuje" się np. podczas przewijania - widziałeś w praktyce Ajax. W jednym z rozdziałów kursu zobaczysz, jak pracować z tym formatem, a także jak wysyłać wspomniane zapytania do serwera.
Choć kurs który masz przed sobą, jest kursem dla początkujących, to aby zrozumieć jak działa język JavaScript i jak z nim się współcześnie pracuje, omówimy dwa ważne tematy - zarządzanie zależnościami i bundlowanie kodu. Dowiesz się czym jest npm i jak z jego pomocą pobierać paczki gotowego kodu z internetu, a także jak sprawić, by bez trudnu dołączać je do własnego kodu. W tym celu skorzystamy z narzędzia snowpack, które pozwoli nam także na optymalizację kodu przed jego wypuszczeniem w świat. Na tym etapie omówimy również jak działają moduły ESM, pozwalające dzielić kod na mniejsze części.
Kurs podzielony został na możliwie krótkie lekcje, do których w każdej chwili możesz wrócić. Jeśli zatem zapomnisz jak odczytywać wymiary elementu na stronie, szybko odnajdziesz odpowiednią lekcję. Czym jednak była by sama teoria i proste przykłady, bez pokazania, jak połączyć je w całość i wykorzystać w praktyce? Dobra wiadomość jest taka, że w kursie stworzymy aż 5 praktycznych projektów, wykorzystujących zdobytą wcześniej wiedzę. Najpierw napiszemy program losujący Dużego Lotka, następnie dynamiczny pasek postępu przeczytania artykułu, dymek pojawiający się nad elementem po najechaniu na niego myszą, wygenerujemy tabelkę w użytkownikami na podstawie danych JSON, a na koniec tworzymy prosty odtwarzacz wideo, z możliwością pauzowania i przewijania filmu.
Kurs ten jest dla wszystkich osób, które znają już podstawy HTML i CSS i chciałyby przejść poziom wyżej i dodać do swoich stron dynamiczności. Żadna wcześniejsza wiedza z zakresu JavaScript nie jest wymagana, ale zalecana jest podstawowa wiedza z zakresu samego programowania (czym są zmienne, pętle, funkcje itd.). Materiał ten będzie również świetnym odświeżeniem i usystematyzowaniem wiedzy dla osób, które już z tym językiem miały do czynienia. Po przerobieniu tego kursu będziesz gotowy, by poznawać język JavaScript dalej i zacząć korzystać z nowoczesnych frameworków.
Teraz pokażę Ci, w jaki sposób możemy dodawać elementy do tablicy
bo nie zawsze jest tak, że tworzymy tablicę, gdzie od razu wpisujemy wszystkie
elementy. Więc utworzymy sobie tablicę, którą nazwę arr,
będzie to stała i będzie to pusta tablica, aczkolwiek
tutaj mógłbyś od razu wstawić sobie jakieś elementy i później do tej tablicy dodawać.
I teraz jest kilka sposobów jak w języku
JavaScript dodawać elementy do tablicy i one się przydadzą w różnych kontekstach,
czy będziemy to dodawać w jakichś pętlach itd.
Natomiast pokażę Ci, że możemy to zrobić
za pomocą indeksów. Bo tak jak mogliśmy się odwołać do jakiegoś elementu tablicy
poprzez odwołanie się do tej tablicy i do jej indeksu np.
0 zwracało pierwszy element, jeden zwracało drugi itd.
Swoją drogą, jeżeli chciałbyś się odwołać do elementu tablicy, który nie istnieje,
bo ona jest pusta, jej właściwość length zwróciłaby 0, to dostaniesz tutaj
undefined, czyli wartość, o której już mówiliśmy.
Czyli po takim odwołaniu czy nawet po takim dostaniemy undefined.
Ale możemy powiedzieć, że chcemy pod
pierwszym indeksem tablicy przypisać sobie np.
Kasia, a pod indeksem numer 1, czyli będzie to drugie pole
można tak powiedzieć przypisać Tomek. I
teraz będziemy mieli tablicę dokładnie taką samą, jak byśmy wpisali tutaj
Kasia
i Tomek. Czyli dokładnie w ten sposób to zadziała, ale dynamicznie
możemy jakoś w kodzie dodawać tam elementy.
Tutaj oczywiście moglibyśmy podstawić nazwę jakiejś zmiennej, która by przechowywała
wartość, którą tam chcemy wstawić i tak dalej.
Wyświetlmy sobie tę tablicę w konsoli, żeby zobaczyć.
No i wygląda dokładnie tak, jak powiedziałem.
Jeżeli chciałbyś dodać jakiś element na końcu tablicy, jest do tego pewien trik.
Bo teraz, jeżeli chcielibyśmy dodać kolejny element, kiedy mamy już tam dwa
elementy, to kolejny dalibyśmy pod arr 2.
Tutaj trzeba wstawić dwójkę.
Skąd tą dwójkę można byłoby wziąć dynamicznie?
Otóż na tym etapie
jak mamy dwa elementy w tablicy to arr.length zwraca nam właśnie dwójkę.
Czyli można zastosować sobie taki trik, że powiemy arr i tutaj zamiast ręcznie
wstawiać dwójkę to odwołamy się do naszej tablicy i do length,
to wyrażenie sprawi, że tu zostanie właśnie podstawiona dwójka.
Czyli dokładnie tak to będzie wyglądać.
I przypiszemy tutaj np.
Piotr albo Piotrek po prostu w ten sposób. I teraz będziemy mieć trzy elementy.
Niemniej jednak taki sposób dodawania elementów do tablicy jest rzadki i raczej
wykorzystywany gdzieś może w pętlach, jak chcielibyśmy skopiować dwie tablice itd.
Natomiast mamy również coś takiego jak
metody dostępne na różnych obiektach w języku JavaScript
i tablica również jest traktowana jak taki obiekt.
Dlatego możemy się odwołać do tej tablicy
poprzez stałą arr i po kropce odwołać się do jej metody, która nazywa się push.
Metody są to funkcje,
o funkcjach jeszcze potem sobie powiemy, ale funkcje przyjmują jakieś parametry,
które są gdzieś wewnątrz jakoś przetwarzane.
My nie wiemy jak działa pod spodem metoda push.
Jest to po prostu metoda wbudowana w język JavaScript.
Wiemy tylko, że możemy przekazać jej
element, który chcemy dodać na końcu tablicy.
Więc jeżeli tutaj dodamy sobie string Monika to na końcu tej tablicy, to możemy
wyświetlić właśnie później, bo program jest wykonywany z góry na dół,
na końcu tej tablicy zostanie dodany taki element
Monika, dokładnie tak samo jak zrobiliśmy to tutaj.
Zobacz teraz mamy 4 elementy w tej tablicy.
Jeżeli chcielibyśmy dodać jakiś
element na początku tablicy to wydawałoby się, że można to zrobić za pomocą arr0,
ale gdybyśmy tak zrobili teraz to byśmy nadpisali Kasię innym elementem.
A jeżeli chcemy dodać coś na początku tablicy, a wszystkie elementy
przesunąć o jeden indeks w prawo, to korzystamy z metody unshift.
Odwołamy się do arr, następnie unshift i dodamy sobie tutaj np.
Patryk. Zobacz jak teraz zmieni się ta tablica.
Na początku jest Patryk, a wszystkie inne
elementy zostały przesunięte po prostu w prawo o jeden indeks.
Na końcu wspomnę jeszcze tylko o tym, że
mimo tego, że stworzyliśmy tutaj tę tablicę jako stałą, czyli const, to
zauważ, że możemy modyfikować jej zawartość.
I to jest bardzo ważne w języku JavaScript, bo mówiłem Ci wcześniej, że
jak mamy stałą to nie da się zmienić jej wartości.
Natomiast jeżeli ona przechowuje jakiś dynamiczny obiekt, a takim obiektem jest
tablica to jak najbardziej można zmieniać wartość tego obiektu.
Natomiast nie można do tej stałej przypisać czegoś innego.
Czyli nie mógłbym powiedzieć, że arr ma się równać pustej tablicy, albo że chcę
tutaj przypisać null albo zmienić tą wartość na jakąkolwiek inną.
Tego zrobić nie można, ale można bez problemu zmieniać to co jest przypisane do
tej stałej, czyli w tym przypadku tablicę.