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 tak zwany skrócony zapis if
i jest on z angielskiego nazywany Ternary operator, dlatego, że będziemy mieli taki,
można powiedzieć operator, który przyjmuje trzy operandy.
Natomiast najpierw pokaże Ci dłuższą drogę, a potem jak możemy to skrócić.
Czyli utworzymy sobie jakąś stałą firstName
i przypiszemy jej tutaj wartość taką pustą.
Następnie na bazie właśnie tego firstName powiedzmy, że gdzieś to z danych z bazy
danych będzie wyciągnięte i albo ktoś podał to imię, albo nie,
będziemy chcieli utworzyć sobie taką zmienną userName
i potem powiedzmy gdzieś na stronie wyświetli nazwę tego użytkownika.
Więc utworzyli byśmy sobie taką
zmienną userName, która będzie miała pustą wartość,
teraz będzie miała wartość undefined, ale
równie dobrze można jej przypisać pusty ciąg znaków.
Tutaj nie będzie to miało żadnego znaczenia.
I teraz zwykłą instrukcją warunkową if moglibyśmy sprawdzić
jeżeli firstName nie jest równe pustemu
ciągowi znaków, albo w skrócie można zrobić to po prostu tak, bo mówiłem Ci, że if
oczekuje, że otrzyma wartość prawdziwą albo fałszywą.
Pusty ciąg znaków jest wartością fałszywą, więc to potraktuje jako false.
Nie musimy tego porównywać w ten sposób i
ten operator wtedy zamieniłby to na true lub false.
Wystarczy to podstawić tak,
bardzo często się z tym spotkasz w języku JavaScript.
Czyli jeżeli firstName jest podane, to do
userName chcę przypisać to samo co jest w firstName.
Natomiast w przeciwnym wypadku do userName chcę przypisać nieznajomy.
No i tutaj moglibyśmy sobie wyświetlić po prostu Witaj userName.
No i w takiej sytuacji mamy Witaj nieznajomy,
natomiast jeżeli tutaj byśmy podali np.
Piotr, oczywiście będzie Witaj Piotr.
Chcę Ci teraz pokazać, że cały taki zapis
można skrócić za pomocą właśnie tego Ternary Operator
i będzie to wyglądało tak, że będziemy sobie tworzyć
w zasadzie od razu można to zrobić tutaj
albo gdzieś pod spodem, ale może to być od razu przy tworzeniu
takiej zmiennej i wtedy ona mogłaby być też stałą.
Możemy tutaj od razu powiedzieć firstName,
znak zapytania, firstName, dwukropek, nieznajomy.
Już tłumaczę.
To całe wyrażenie przyjmuje trzy operandy pierwszy, drugi i trzeci.
I ten pierwszy jest jakby warunkiem.
Wyobraź sobie, że to jest dokładnie to
samo, co wstawiamy tutaj do if. Więc będzie to wartość prawdziwa albo fałszywa.
I teraz, jeżeli to będzie wartość
prawdziwa, to będziemy chcieli zwrócić to, co podamy po znaku zapytania.
Więc tutaj jeszcze raz ją podstawiam.
W tym przypadku jest to Piotr.
Natomiast jeżeli będzie fałszywa podstaw
nieznajomy. I to dopiero zostanie zapisane od tej zmiennej.
Tutaj
żeby jeszcze Ci to bardziej uprościć, to będę mógł pokazać to tak.
Piotr, czyli jeżeli to, co jest pod firstName
jest wartością prawdziwą, wiemy, że to jest wartość prawdziwa, to podstaw
tutaj Piotr, w przeciwnym wypadku podstaw nieznajomy.
Ale nie chcę tutaj ręcznie wpisywać tego
Piotra, tylko po prostu podstawić to, co pod tym firstName jest.
Zobaczmy, że efekt będzie dokładnie taki sam.
Natomiast jeżeli tutaj byłaby wartość
fałszywa, czyli pusty ciąg znaków, to zostanie to potraktowane tak, jakbyśmy
wstawili to do if tutaj jako false i wtedy nie wykona się to wyrażenie tutaj,
tylko zostanie wywołane jakby to wyrażenie.
Tutaj mamy podstawiony tylko ciąg znaków,
ale w języku JavaScript nazywamy to również wyrażeniem.
Oczywiście tutaj mógłbyś mieć jakieś
wyrażenie typu 2+2 i wynik 4 zostałby tutaj podstawiony.
Chodzi tutaj tylko o to, że jeżeli to jest prawdą czy jest wartością prawdziwą,
podstaw to co jest podane po znaku zapytania.
W przeciwnym wypadku tak jak w bloku else podstaw to co jest tutaj.
Jest to skrócony zapis, natomiast nie
zawsze możemy go wykorzystać, tak jak tutaj
mieliśmy if i moglibyśmy mieć wiele
linijek różnego kodu, bo w takim skróconym zapisie zrobić się tego nie da.
Więc on jest wykorzystywany przeważnie wtedy, kiedy chcemy właśnie ustawić jakąś
zmienną od razu na jakąś wartość, ale warunkowo, albo kiedy powiedzmy będziemy
przekazywać warunkowo jakieś parametry do funkcji.
Pamiętaj jednak, że dokładnie tak to wygląda.
Przyjmuje tu 3 operandy, czyli jakby warunek,
tutaj oczywiście mógłbyś też mieć, jeżeli firstName jest większa od 20
gdyby to była jakaś liczba
to zostałoby zewaluowane do true lub false i byłoby traktowane jako właśnie ta
wartość, czyli tu jakaś wartość prawdziwa lub fałszywa,
to co ma być podstawione jeżeli prawda, to co jeżeli fałsz.