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.
W tej lekcji powiemy sobie o najważniejszej
instrukcji warunkowej dostępnej w języku JavaScript, jaką jest instrukcja if.
Już kilkukrotnie ona się w tym kursie pojawiała,
jeżeli go oglądasz od początku po kolei,
to już ją widziałeś, ale jeszcze teraz chciałbym ją osobno omówić.
Utworzymy sobie stałą firstName i przypiszę tutaj wartość Maciej.
I teraz będziemy chcieli sobie stworzyć
taką instrukcję, w której sprawdzimy czy to imię jest podane.
Jeżeli jest, to powiemy Cześć Maciej.
Jeżeli nie jest podane, to powiemy cześć nieznajomy.
Więc instrukcję if tworzymy w języku JavaScript za pomocą takiego słowa if.
I tutaj mamy nawiasy okrągłe, w których
musimy podać jakieś wyrażenie, które ewolouje do prawdy lub fałszu.
Czyli może być tutaj podstawiona wartość
prawdziwa, taka jak 1 lub true, albo jakiś warunek, który się zamieni np.
na true. Więc możemy tutaj powiedzieć jeżeli firstName
nie jest równe prostemu ciągowi znaków, to znaczy, że tutaj jest coś podane,
to wtedy chcemy zrobić console.log i tutaj zrobimy sobie taką interpolację
cześć i podamy tutaj firstName, po prostu w ten sposób.
Tutaj się nie przejmuj tym, że jest to podświetlone.
To przez to sprawdzanie takie TypeScript-owe, to nie jest tutaj istotne,
nie ma tutaj żadnego błędu.
Czyli wygląda to w następujący sposób.
I teraz często mylące jest to, że wydaje
się, że w instrukcjach warunkowych tylko w tym miejscu można robić takie zapisy.
A tak naprawdę tutaj należy zwrócić uwagę na kolejność jak to jest ewaluowane.
To co zaznaczyłem jest to zwykłe wyrażenie
JavaScript, które za pomocą takiego operatora zostaje zamienione na true lub
false i dopiero ta wartość jest podstawiona do if.
Czyli to spokojnie mogłoby być wycięte, wstawione tutaj np.
do result.
Nie ma to większego sensu, ale chcę Ci
pokazać, że to są dwie różne rzeczy i result mógłby być podstawiony tutaj.
Czyli tak naprawdę to nie jest tak, że w
if są jakieś specjalne operatory takie jak np.
ten.
One są tutaj tylko ewaluowane jakby w tym miejscu
i dopiero wtedy ta wartość wynikowa jest podstawiona do if.
OK. No i zobaczmy czy zostanie wyświetlone
cześć Maciej, dokładnie tak się stało.
Natomiast jeżeli tutaj będzie pusta
wartość to już nam się nic nie wyświetli, a chciałbym stworzyć blok else, który
właśnie robimy w ten sposób i on mówi, że w przeciwnym wypadku, jeżeli tutaj będzie
wartość fałszywa i się ten blok kodu nie wykona,
swoją drogą tu oczywiście może być dużo, dużo więcej kodu pomiędzy tymi nawiasami
klamrowymi, to w przeciwnym wypadku chcemy powiedzieć console.log
cześć nieznajomy.
No i zobaczmy mamy teraz cześć nieznajomy.
Pokażę Ci jeszcze, że możemy skorzystać z
bloku else if i w tym celu utworzymy sobie taką stałą number,
przypiszemy jej wartość 40 i napiszemy tutaj tak.
Jeżeli number jest mniejsze od 30 to będziemy chcieli wyświetlić
liczba jest mniejsza od 30.
I zauważ, że znowu ten operator dba o to,
żeby całe wyrażenie zamienić na true lub false.
Dopiero to jest podstawione do if, który
dba właśnie wyłącznie o to, aby mieć tam wartość prawdziwą lub fałszywą.
OK, i teraz będziemy chcieli zrobić kolejny warunek, czyli nie else w
przeciwnym wypadku, ale else if, żeby tutaj znowu było jakieś sprawdzenie.
Więc jeżeli number jest większe od 30,
czyli jeżeli tutaj będzie fałsz nie wykona się ta linijka, to przechodzimy
do kolejnego sprawdzenia i tutaj wyświetlimy
liczba jest większa od
30, ok
tak naprawdę tutaj chciałem mieć 10.
Zróbmy to tak, zerknąłem sobie i na końcu możemy zrobić znowu jakiś else if
albo po prostu else, czyli w przeciwnym wypadku tu już bez żadnego warunku
jeżeli to będzie fałszywe, to będzie fałszywe
to wykonaj wtedy taką linijkę. Zrobimy console.log
i napiszemy liczba nie jest mniejsza od 30 ani też większa od 10.
Niech to będzie w ten sposób, zobaczmy jak nam się to wyświetli.
Liczba jest większa od 10, czyli ten
warunek został spełniony dlatego, że 40 nie jest mniejsze od 30.
Czyli to nie zostało spełnione. I jak
będziesz sobie manipulował tą wartością, to tutaj będą się te komunikaty zmieniać.
Natomiast jest inna, istotniejsza rzecz, o której chcę Ci powiedzieć.
W niektórych językach programowania, takich jak np.
PHP możemy zapisać else if i wygląda to
tak, bo w tym języku istnieje prawdziwy blok else if.
Natomiast w języku JavaScript i nie dla każdego to jest oczywiste
nie ma czegoś takiego jak else if, jest tylko if i else. I jak dokładnie się temu
przyjrzymy, to rzeczywiście coś takiego tutaj zrobiliśmy.
Powiedzieliśmy if, a następnie else.
Tylko tutaj zamiast w tym else, tak jak wyżej robić blok kodu, podaliśmy kolejnego if,
czyli można powiedzieć, że tutaj jest kilka if.
Tu jest jeden taki if,
w zasadzie ten jest cały, bo blok else istnieje.
Czyli to jest cały taki if else, a ten jest osobny.
Mam nadzieję, że to widzisz.
Czyli tak naprawdę mówimy, że jeżeli to będzie fałszywe, wykonaj blok else.
A co jest w bloku else?
Otóż w nim od razu zaczyna się taki oto
blok, tylko że nie jest już opleciony takimi nawiasami, chociaż mógłby być.
I to jest dokładnie to samo.
Więc jako ciekawostkę zapamiętaj sobie, że język JavaScript nie ma natywnie czegoś
takiego jak else if. Ma po prostu else i w nim możemy podać kolejnego if.
W praktyce działa to jednak dokładnie tak samo.