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.
Pierwszą z pętli w języku JavaScript, jaką omówimy jest pętla while
i wygląda ona w następujący sposób. Piszemy sobie while,
następnie podajemy jakieś wyrażenie, które będzie wykonywane za każdym obrotem tej
pętli i następnie blok kodu, który ma się w tej pętli wykonać.
Więc żebyśmy mogli tutaj zrobić jakiś prawdziwy
przykład, to utworzę sobie zmienną number, której przypiszę wartość 10
i teraz chcę powiedzieć, że while
czyli tak długo jak number jest większe od zera to chcę wyświetlić w konsoli number.
Natomiast w ten sposób stworzyli byśmy pętlę nieskończoną dlatego, że wyświetlimy
number i znowu sprawdzimy czy 10 jest większa od zera.
Tak, więc znowu będziemy wykonywać ten kod. A zatem musimy w jakiś sposób sprawić, aby
tutaj wartość tej zmiennej się zmieniała, aby ten warunek w pewnym momencie zwrócił
false. I wystarczy, że tutaj oczywiście zrobimy number minus minus, czyli zdekrementujemy
tę wartość, więc ona będzie miała 9 itd.
W pewnym momencie dojdzie do zera i to przestanie się wyświetlać.
Zobaczmy.
Mamy liczbę od 10 do 1 i pętla się zakończyła.
Tak jak wspomniałem tutaj podajemy dowolne wyrażenie, które ewaluuje do prawdy lub
fałszu, czyli tak samo jak w przypadku instrukcji warunkowej if.
W tym przypadku to ten operator dba o to,
żeby z całego tego wyrażenia zwrócić true lub false.
Natomiast jeżeli byśmy tutaj powiedzieli
while 10, to stworzyli byśmy pętlę nieskończoną
chociaż 10 to nie jest true, ale jest to traktowane jako wartość prawdziwa.
Czyli tutaj dokładnie tak samo to działa jak w przypadku instrukcji if.
Pokażę Ci jeszcze jeden prosty przykład.
Wykorzystamy funkcję prompt dostępną w przeglądarce.
Czyli chciałbym stworzyć coś takiego jak secretNumber,
czyli jakaś sekretna liczba do odgadnięcia,
będzie to 2 i chcę stworzyć taki programik, który będzie wyświetlał takie
pole Podaj liczbę i jak podamy poprawną no to wyświetlimy
brawo, a jak podamy niepoprawną to jeszcze
raz chcemy zapytać o tę liczbę. Więc możemy powiedzieć while i skorzystać z
funkcji, która jest dostępna tylko w przeglądarkach internetowych.
Więc to jest ważne, że ta funkcja nie jest
częścią języka JavaScript, ale środowiska przeglądarki internetowej i np.
gdybyśmy ten kod uruchomili w Node.js, to nie zadziała,
to o tym pamiętaj.
Ona się nazywa prompt i tutaj podajemy co ma się wyświetlić, czyli podaj liczbę
i teraz ta funkcja sprawi, że na stronie internetowej wyświetli się okienko.
Jeżeli do tego okienka ktoś coś wpisze
to ta funkcja to zwróci, czyli tu zostanie podstawione to co ktoś wpisał.
Więc będziemy mogli sobie tutaj porównać.
I jeżeli liczba, którą ktoś wpisał nie jest
równa secretNumber i zauważ, że porównuje w ten sposób za pomocą takiego operatora a
nie takiego, dlatego, że to co zwróci ta funkcja to będzie string.
Czyli jak ktoś tam wpiszę dwójkę to będę porównywał string 2 do liczby 2, którą mam
tutaj, czyli tak długo jak to co ktoś tam podał nie jest równe secretNumber
chcemy wyświetlić alert,
to jest też funkcja dostępna w przeglądarkach internetowych,
Nie trafiłeś.
Natomiast w momencie, kiedy
ta pętla przestanie się wykonywać, chcemy wyświetlić alert
Brawo!
OK, zobaczymy jak to będzie wyglądać.
To jest właśnie to okienko prompt, czyli kod się wykonywał z góry na dół,
doszliśmy tutaj,
funkcja prompt zatrzymała wykonywanie tego wszystkiego
i to co ja tam wpiszę np.
10 zostanie tutaj podstawione pod to zaznaczenie i porównamy.
I tak długo jak 10 nie jest równe 2, które mamy tutaj wyświetlamy
Nie trafiłeś i pętla musi się wykonać
jeszcze raz. Zobaczmy.
Nie trafiłeś
i jeszcze raz wykonujemy ten sam kod.
Jeżeli wpisze 3 znowu nie trafiłeś.
I tak będzie w nieskończoność.
Natomiast jak wpiszę dwójkę to mamy prawo i ten program się zakończył.
Czyli jak widzisz w pętli while może być
dowolny warunek i w różnych sytuacjach ona może być wykorzystana.