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.
Jak wspominałem już w jednej z poprzednich
lekcji, kod JavaScript możemy uruchamiać wszędzie tam, gdzie jest odpowiednie
środowisko, które potrafi go zinterpretować i uruchomić.
Najpopularniejszym tego typu środowiskiem jest przeglądarka internetowa, czyli można
powiedzieć, że kod uruchamiany na stronach internetowych.
I tak też będziemy robić w większości tego kursu,
dlatego w tej lekcji będę chciał Ci pokazać jak możemy do strony internetowej
podpiąć skrypt, który następnie będzie podczas wczytywania się tej strony
internetowej uruchamiany przez przeglądarkę.
Mam tutaj taką prostą stronę internetową,
którą oczywiście znajdziesz w plikach źródłowych i na niej jedyne co jest
podłączone jakby z zewnątrz jest to link do styli tak żeby nam tutaj to wszystko
fajnie wyglądało i podobnie jak podłączamy style CSS do strony,
podobnie możemy podłączyć również skrypty
JavaScript. Więc mam tutaj taki pusty plik, który nazwałem main.js i
jest w katalogu js tutaj właśnie i będziemy chcieli go podłączyć.
Robimy to za pomocą specjalnego tagu, który nazywa się script.
Wygląda to w ten sposób i dodajemy atrybut src.
Tutaj musimy podać ścieżkę pod jaką znajduje się nasz plik JavaScript.
I to może być ścieżka, czyli adres zewnętrzny, tak jak np.
tutaj widzimy, nie musi to być z tego samego serwera serwowane, z którego jest
nasza strona, albo może to być plik podłączony lokalnie.
Tak czy siak, kiedy znajdzie się to na serwerze już internetowym, to przeglądarka
wczytując tę stronę tak naprawdę z góry na dół
kiedy natknie się na taki lokalny adres to
pobierze go oczywiście z tej samej domeny z tego samego miejsca.
Więc tutaj możemy po prostu napisać js i następnie main.js
w ten oto sposób dlatego, że patrzymy sobie relatywnie, jesteśmy w pliku index.html
więc od razu z niego można wejść do katalogu
js i do tego pliku.
Dlatego właśnie podaliśmy taką oto ścieżkę.
Jak wspomniałem, kiedy ta strona będzie wczytywana, z góry na dół będzie
tworzone takie całe drzewo dokumentu, o którym jeszcze później będziemy mówić, to
kiedy przeglądarka natknie się na ten skrypt, po prostu go pobierze i wykona.
Co ważne, skrypt nie musi być umieszczony dokładnie w tym miejscu, ale zazwyczaj
skrypty umieszczamy właśnie przed zamykającym tagiem body.
Niemniej jednak w zasadzie w dowolnym
miejscu możemy je umieścić i będzie to działać w niektórych przypadkach tak samo,
a w większości przypadków będziemy tutaj musieli zwrócić uwagę na pewną
kolejność, ale o tym jeszcze będę później mówił w kursie.
Czyli możesz się spotkać również z tym, że taki skrypt będzie umieszczany w elemencie
head, ale to będzie blokowało nam wczytywanie strony
jeżeli ten plik będzie zajmował np.
500 kilobajtów, to strona będzie cały czas
biała dla użytkownika do momentu, aż nie wczyta się i nie wykona ten skrypt.
Dlatego w tym przypadku lepszą praktyką jest robienie tego tutaj.
Wtedy strona się wczytuje, ona już wizualnie na ekranie użytkownika jest,
następnie jest pobierany skrypt i dopiero jest on wykonywany.
Jeszcze jest więcej zalet podłączania tego
na dole strony, ale tak jak wspomniałem będę o tym jeszcze mówił w tym kursie.
Czyli w ten sposób możemy dołączyć jeden plik JavaScript,
oczywiście ich tutaj mogą być więcej, wtedy podajemy kolejne elementy script.
Pamiętaj, że zawsze, również tutaj musimy domknąć ten element, mimo tego, że nie
mamy tutaj pomiędzy jak widzisz tymi elementami żadnego kodu JavaScript.
OK, więc teraz będę chciał żebyśmy sobie w
tym pliku coś wpisali i na początek skorzystamy sobie z takiego console log.
Jest to taka specjalna metoda log na obiekcie Console, która pozwala nam
wyświetlić w konsoli przeglądarki podany tutaj tekst.
W zasadzie tu można przekazać jeszcze inne rzeczy.
Też będziemy to wielokrotnie jeszcze robić.
Napiszmy sobie tutaj Witaj świecie,
zakończę to w ten sposób,
później jeszcze będę w kursie w kolejnych
lekcjach tłumaczył składnie funkcji i wszystkich niezbędnych konstrukcji.
Niemniej jednak taki prosty programik dołączyliśmy do naszej strony i teraz tę
stronę będę chciał uruchomić z użyciem Live Servera
więc wciskam Command Shift P lub Control
Shift P na Windowsie i tutaj wybieram Live Serwer: Open with Live Serwer.
W ten oto sposób. I teraz przejdę sobie do
przeglądarki Chrome, odświeżę stronę właśnie pod takim adresem
i będziemy mieli taki główny katalog i następnie nasz przykład,
możemy do niego przejść.
Kliknę jeszcze prawym przyciskiem na stronę i wybiorę Inspect żeby otworzyć
sobie ten panel Chrome Developer Tools i przejdziemy do zakładki Console,
dokładnie tutaj zobaczymy komunikat, który
wpisaliśmy. Więc mogę jeszcze raz odświeżyć stronę,
kiedy ta strona się wczytuje wczytuje się nasz skrypt,
kod JavaScript jest interpretowany przez
ten silnik zawarty w przeglądarce internetowej i jest wykonywany.
No i w przypadku przeglądarki kiedy robimy właśnie console.log
to to co tutaj przekażemy
pojawia się w tej zakładce Console i służy to głównie dla nas do debugowania.
W innym środowisku, takim jak np.
Node.js, również będziemy mogli skorzystać
z console.log, ale wtedy oczywiście gdzie indziej zobaczymy ten komunikat.
Na koniec tej lekcji chcę jeszcze
wspomnieć o jednej możliwości podłączenia skryptów do strony internetowej
a w zasadzie, że możemy je wpisywać bezpośrednio.
Czyli jeżeli byśmy nie użyli tutaj atrybutu src, a tylko utworzyli taki tag script,
to możemy wewnątrz tego tagu wpisać dowolny kod JavaScript.
Czyli tutaj również mógłbym wpisać console.log Witaj z liniowego skryptu np.
w ten sposób,
bo nazwiemy to takim liniowym skryptem, który jest bezpośrednio wstawiony na
stronę i tutaj nam się strona automatycznie odświeży
i jak widzisz najpierw mamy Witaj świecie, a następnie Witaj z liniowego skryptu.
Czyli kod JavaScript również może być zawarty w takich elementach
i to przydaje się przede wszystkim wtedy, kiedy chcemy tutaj skonfigurować pewne
rzeczy, a następnie podpinamy jakiś inny skrypt i w tym skrypcie korzystamy z
niektórych globalnych zmiennych, które tutaj ustawiliśmy.
Często również w ten sposób osadza się np.
Google Analytics na stronach itd.
więc na pewno często się z tym spotkasz.
Niemniej jednak zdecydowaną większość skryptów będziemy tworzyć w osobnych
plikach i podłączać je do naszej strony w taki sposób jak tutaj widzisz.