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 pokażę Ci krótko czym jest tak zwany Destructuring obiektów.
Jest to funkcja języka JavaScript dostępna od
standardu ES6, a więc z powodzeniem możesz z niej korzystać
we wszystkich nowoczesnych przeglądarkach internetowych.
Na początek utworzymy sobie jakiś obiekt
person i chciałbym tutaj zawrzeć trzy właściwości firstName
Jan, następnie lastName Kowalski i następnie powiedzmy age 30.
I teraz na czym polega Destructuring?
Wyobraź sobie, że mamy taki obiekt,
takie obiekty mogą pochodzić z różnych
miejsc, o czym się jeszcze przekonasz pracując z językiem JavaScript.
I teraz chcemy z takiego obiektu wyciągnąć sobie jakieś dane i zapisać je w zmiennych
lub stałych, bo tutaj nie ma to specjalnego znaczenia.
Więc po prostu chciałbym zrobić coś takiego, że chcę mieć stałą, która się
nazywa firstName i pod nią chcę mieć przypisane to co jest w
person.firstName. Czyli muszę ją utworzyć i tak samo dla lastName i age musiałbym zrobić.
Natomiast możemy tworząc taką stałą od razu sobie wyciągnąć z tego obiektu np.
firstName. I robimy to z użyciem tak zwanego Destructuringu.
Wygląda to tak, że piszemy sobie const i tutaj w takich nawiasach, które
wyglądają jak obiekt, ale to jest tylko specjalny zapis,
to nie jest obiekt,
podajemy co chcemy z obiektu wyciągnąć. Więc mogę napisać np.
firstName i następnie po tej stronie
podstawić obiekt, z którego ma to być wyciągnięte.
Robimy to tak.
I co ważne jeżeli to zrobimy z const to teraz będziemy po prostu mieli taką stałą
firstName, która przechowuje Jan i nie da się tej wartości zmienić,
natomiast jeżeli chcielibyśmy, żeby to
była zwykła zmienna, możemy to też zrobić z let.
Natomiast to co jest ważne
jeżeli bym to zrobił z let i mam teraz firstName i zmienię to na Piotr
to to nie jest tak, że to się zmienia gdzieś wewnątrz tego obiektu.
To zostało po prostu skopiowane na tym etapie.
Czyli utworzyłem zmienną firstName, która ma w sobie to samo co person.firstName.
Ale wróćmy może do tego zapisu z const i zrobimy sobie console.log(firstName).
Tak jak wspomniałem, tutaj będzie po prostu Jan.
A więc takim prostym zapisem możemy
utworzyć stałą o nazwie firstName, która przechowuje to samo co person.firstName.
Natomiast to co jest ciekawe to gdybyś
chciał to nazwać inaczej, czyli zrobić coś takiego np.
mieć stałą name, w której jest person.firstName
to również można to zrobić przy destructuringu.
Wystarczy, że tutaj podamy po dwukropku nazwę stałej jaką chcemy utworzyć.
Czyli teraz jak widzisz nam podświetla, że firstName już tutaj nie istnieje, bo tak
naprawdę utworzyliśmy stałą o nazwie name. I dokładnie kieruje to na Jan.
OK, ja sobie jednak wrócę do tego zapisu i
pokażę Ci, że tu oczywiście można po przecinku wyciągać kolejne rzeczy. Czyli
możemy powiedzieć lastName i dzięki temu w tym zakresie będziemy mieli firstName
i lastName, dwie takie stałe, które kierują na te wartości.
Jeżeli byśmy chcieli wyciągnąć również
age, też możemy to dopisać, ale nie musimy.
Natomiast gdybyśmy tutaj napisali coś takiego jak np.
job, to utworzymy stałą o nazwie job,
która będzie miała wartość undefined z tego powodu, że gdybyśmy się odwołali do
person.job to też by nam zwróciło undefined.
Więc o tym pamiętaj.
Jak zatem widzisz taki na pierwszy rzut
oka wydaje się dziwny zapis, ale ja przyznam, że często z niego korzystam
kiedy mam jakiś obiekt i chcę z niego
wyciągnąć jedną lub kilka rzeczy i zapisać je sobie w stałych lub zmiennych, to robię
to właśnie w ten sposób, bo ten zapis sprawia, że nasz kod jest po prostu
krótszy, a jeżeli go rozumiemy, to jest również bardziej czytelny.