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.
Tablice są to takie konstrukcje, gdzie
możemy jakby w jednym miejscu przechowywać wiele elementów. I
w języku JavaScript w tablicy można przechowywać wszystkie typy danych, jakie
tylko w języku JavaScript są reprezentowane.
Więc na początek utwórzmy sobie tablicę, w
której będą same liczby. Nazwę stałą numbers i tablicę w języku
JavaScript tworzymy za pomocą pary takich nawiasów kwadratowych.
W tym momencie utworzyłem pustą tablicę.
Jest to jak najbardziej poprawny kod, natomiast chciałbym tę tablicę uzupełnić.
Więc wpiszę sobie do środka jakieś elementy i oddzielamy je przecinkiem,
więc podam sobie 1, 2, 3, 4.
I teraz co jest ważne?
Tutaj podałem po prostu pojedyncze wartości liczbowe, ale mógłbyś tutaj
wstawić również odwołanie się do jakiejś zmiennej itd.
Czyli jeżeli miałbym zmienną np.
number, tu bym sobie zapisał 10 to mogę tę zmienną
w tym wypadku jest to akurat stała wstawić tutaj.
Czyli nie muszą być w tablicy literalnie wpisane wartości,
można w dowolny sposób tutaj się do nich odwołać.
I co ważne możesz w tablicy przechowywać obok siebie różne wartości.
Ja tutaj wstawiłem same liczby, ale możemy tutaj również wstawić np.
string,
no i wszystko inne, co w języku JavaScript możesz przypisać do zmiennej.
Teraz jak się odwoływać do poszczególnych elementów tablicy, bo skoro tablica jest taką
konstrukcją, w której możemy wiele różnych elementów przechowywać, to przechowujemy
je po to, żeby móc się też w jakiś sposób do nich odwołać.
No i możemy się odwołać na przykład do tego
drugiego elementu tablicy, odwołując się oczywiście do niej.
Mamy ją pod stałą numbers
i używając nawiasów kwadratowych i podając indeks, pod którym jest element, którego
wartość chcemy zwrócić jako takie wyrażenie.
I teraz tablice w języku JavaScript są indeksowane od zera.
To oznacza, że pierwszy element w tablicy ma indeks 0
czyli pod number mieliśmy jedynkę,
to tak jak byśmy tutaj wstawili tą jedynkę i ona jest pod indeksem 0.
Potem jest indeks pierwszy, drugi, trzeci.
Czyli jeżeli chcemy się odwołać do tej
dwójki to ona jest pod indeksem 1 bo 0 1 i dlatego tutaj podaję liczbę 1.
Zauważ, że też podajemy tutaj to jako typ number.
Mógłbyś również tą jedynkę mieć zapisaną w
jakieś zmiennej i podstawić tutaj nazwę zmiennej.
W ten sposób też byłoby ok.
Chodzi o to, żeby podać liczbę reprezentującą indeks, który chcemy
odczytać. Czyli całe takie wyrażenie numbers 1 zwróci nam dwójkę.
Jeżeli tutaj byłoby 20, to by zwróciło 20, bo chodzi o to, że pod indeksem 1 w
tablicy numbers znajduje się liczba 2, czyli całe to wyrażenie ewalouje do dwójki
tak jakbyśmy ją tutaj po prostu ręcznie wpisali.
Więc gdziekolwiek się w ten sposób odwołamy, będziemy mieli dwójkę.
A więc możemy to również przekazać do console.log i zobaczyć w przeglądarce.
I jak widzisz, oczywiście liczba 2 tutaj się pojawia.
W tablicy oczywiście mogą być również
dowolne wyrażenia, które najpierw będą ewaluowane,
czyli jak tutaj mam dwójkę i wpisałbym 2 + 10
to oczywiście najpierw to byłoby wyliczone,
dałoby nam to 12, zostałoby zapisane pod
tym pierwszym indeksem no i zobaczylibyśmy tutaj oczywiście 12, więc jak najbardziej
można również w ten sposób z tego korzystać.
Każde wyrażenie JavaScript może się w takiej tablicy znaleźć i ono po prostu
jest najpierw wyliczane, dopiero później jest tworzona cała ta tablica.
Skoro w tablicy może być wszystko, to
oznacza, że w tablicy może być również druga tablica.
Zatem utwórzmy sobie taką tablicę arrays,
bo z angielskiego array to jest właśnie tablica,
więc stworzyłem stałą, którą nazwałem tablice i stworzyłem tutaj pustą tablicę.
I w niej, tak jak wspomniałem, może być wszystko, więc mogę utworzyć w niej drugą
tablicę jak najbardziej, w której będą trzy elementy 2, 3, 4.
Tutaj robię przecinek i tworzę kolejną tablicę, gdzie na
przykład będzie 4, 2, 1, a tu mógłbym jeszcze mieć np.
Piotr. W tym przykładzie oczywiście nie ma to
jakiegoś większego zastosowania, ale cały czas jest to poprawny kod.
Czyli jak się teraz temu przyjrzymy, to mamy tablicę zapisaną tutaj.
I to jest ta tablica z tymi żółtymi nawiasami.
Ona ma dwa elementy.
Pierwszym jej elementem, czyli pod indeksem 0 znajduje się inna tablica, a
pod indeksem 1, czyli jako drugi element znajduje się ta tablica.
Dlatego teraz jeżeli bym zrobił console.log arrays 0, czyli mówię
zwróć mi tutaj pierwszy element tej tablicy, to pierwszym elementem jest inna
tablica i w konsoli zobaczymy taką tablicę 2, 3, 4.
Z kolei jeżeli chciałbym się odwołać np.
do tej dwójki, albo może do trójki, to muszę mieć odwołanie do tej tablicy.
Zatem jeżeli arrays 0 zwraca mi tą tablicę to mogę następnie zrobić coś takiego i
powiedzieć 1 i indeks 1 jest już wyszukiwany na tej tablicy.
Bo tutaj trzeba cały czas patrzeć na to co się dzieje.
Jeżeli arrays 0 zwraca mi tą tablicę
to jest tak jakbym sobie ją tutaj podstawił
i na niej się odwołuje do pierwszego indeksu, czyli zwróci mi to trójkę.
Zobaczmy. Dokładnie tak też się stało.
I na koniec pokażę Ci jeszcze, że tablica
jest pewnego rodzaju obiektem, o obiektach jeszcze będziemy mówić,
I ma ona właściwość length, która mówi nam ile jest elementów w tablicy.
Czyli jeżeli wyświetli byśmy sobie może tutaj wyżej to zrobimy z tej
pierwszej tablicy console.log numbers kropka length,
czyli odwołujemy się do takiej właściwości
tablicy jak length, to zwróci nam to właśnie ile jest elementów w tablicy.
Tutaj jest jeden element, to będzie drugi element jako 12,
trzeci i czwarty. Czyli numbers length zwróci nam liczbę 4. Po prostu.
Zobaczmy, dokładnie tak tutaj tą czwórkę widzimy.
Jest to zwracane jako typ number, czyli
jak byśmy sobie to gdzieś przechwycili do jakiejś zmiennej, tutaj do stałej nazwałbym to length,
można to nazwać dowolnie numbers.length,
to po prostu tutaj będę miał czwórkę dokładnie w taki sam sposób jak bym sobie
utworzył stałą i przypisał jej 4. Ale to może usunę i zostawię to w taki sposób.
Czyli w języku JavaScript tablice tworzymy za pomocą pary takich nawiasów
kwadratowych i jej poszczególne elementy oddzielamy przecinkiem.
Mogą się tam znajdować wyrażenia, które najpierw będą wyliczone i ich wynik
zostanie tutaj podstawiony, no i w tablicy mogą znajdować się inne
tablice i w zasadzie wszystko, co możesz reprezentować w języku JavaScript
do takiej tablicy możesz wstawić.