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.
Kolejnym typem wartości, jakie mogą być reprezentowane w języku JavaScript są
wartości o typie boolean, czyli prawda lub fałsz,
ale w tej lekcji powiemy sobie również o wartościach prawdziwych i fałszywych.
Zacznijmy jednak od prawdy i fałszu. Więc utworzę sobie taką stałą, którą nazwę
isLoggetIn, która będzie mi przechowywać prawdę lub fałsz,
czy ktoś jest zalogowany czy nie. I przypiszemy sobie tutaj true.
Więc znowu literalnie używamy po prostu słowa true.
I jest to wartość o typie boolean, czyli to nie jest tekst,
to nie jest liczba, to jest po prostu wartość tzw.
boolean. I teraz do czego nam się to przydaje?
Otóż zazwyczaj do instrukcji warunkowych.
Więc tutaj wybiegam w przyszłość, bo to
będzie dopiero w jednej z kolejnych lekcji, ale chcę to przedstawić.
Więc w języku JavaScript mamy różne instrukcje warunkowe.
Jedną z nich jest if, gdzie
jeżeli podamy w tych nawiasach warunek
prawdziwy, to wykona się blok kodu, który za moment wpisze.
Jeżeli fałszywy to się nie wykona. Więc
mogę tutaj podstawić wartość tej stałej, czyli isLoggedIn
i stworzyć taki blok kodu, w którym będzie po prostu console.log zalogowano,
natomiast mogę dodać else czyli w przeciwnym wypadku console.log
nie zalogowano.
Zrobimy coś takiego i zobaczmy co się wyświetli w konsoli przeglądarki.
Jak widzisz zalogowano.
Właśnie dlatego, że podstawiliśmy tutaj
true, bo podstawiając tą stałą oczywiście podstawiam wartość, którą ona przechowuje.
Natomiast jeżeli zamienił bym to na false czyli na fałsz to jest kolejna wartość
boolean, są tylko dwie,
true i false, wtedy zobaczymy
niezalogowano.
Dlatego, że tutaj jak podstawimy false a to
by się właśnie tutaj stało, to jeżeli fałsz to wykona się blok else,
bo ten pierwszy blok się wykonuje tylko jeżeli to jest warunek prawdziwy.
Jeżeli zatem chodzi o true i false to są tylko dwie takie wartości.
Natomiast w języku JavaScript każda z
wartości jest wartością albo fałszywą, albo prawdziwą.
I teraz będę chciał w komentarzu wypisać
wszystkie wartości fałszywe i zaraz Ci pokazać, co one tak naprawdę oznaczają.
A więc wartości fałszywe to będą false, zero,
pusty ciąg znaków,
taki lub zapisywany w dowolny inny
sposób, który Ci do tej pory pokazywałem, ale taki, który nie ma w sobie nawet
spacji, jest po prostu pusty, otwarty i zamknięty,
następnie null, o którym mówiliśmy w lekcji poprzedniej, undefined
oraz NaN, czyli Not a Number, o którym też wspominałem.
Te wszystkie wartości są uznawane za
wartości fałszywe, a co za tym idzie każda inna wartość jest wartością prawdziwą.
I teraz co to znaczy?
Otóż jeżeli byśmy sobie stworzyli stałą, którą nazwiemy value jak wartość i wstawili do niej pusty
ciąg znaków i zrobili potem if gdzie go przekażemy,
zauważ, że u góry miałem false albo
wcześniej true i przekazywaliśmy to w tym miejscu.
Teraz natomiast do instrukcji if przekaże pusty ciąg znaków.
Dokładnie tutaj się stanie to samo jak bym
go tak wpisał, ale to by nie miało sensu. Więc mam tutaj jakiś pusty ciąg znaków,
te wartości oczywiście skądś się mogą wziąć,
ktoś będzie musiał coś wpisać.
Jeżeli nie wpisze i wciśnie enter otrzymamy pusty ciąg znaków
itd.
Czyli my tworząc program nie wiemy jaka będzie wartość, w tej lekcji
oczywiście wpisuję to tutaj na sztywno, żeby Ci to wytłumaczyć, ale jeżeli do
instrukcji if przekazał bym pustą wartość to ona zostanie potraktowana jako fałszywa.
Czyli blok kodu, który tutaj wpiszę się, nie wykona, wykonałby się tylko blok else.
Zatem ja tutaj będę chciał napisać coś takiego.
Ta wartość nie jest fałszywa.
Dlaczego coś takiego?
Otóż właśnie po to, żeby Ci pokazać, że
jak mamy pusty ciąg znaków i podstawimy go tutaj, to zostanie uznane za wartość
fałszywą i ta linijka nigdy się nie wywoła.
Więc zobaczmy w przeglądarce, nic się tutaj nie pojawiło.
Czyli pusty ciąg znaków przekazany do instrukcji if jest traktowany jak false i
podobnie będzie jak byśmy tam przekazali zero.
Właśnie ten pusty ciąg znaków null, undefined czy NaN.
Natomiast jeżeli tutaj byśmy zrobili choćby jedną spację, to dalej wygląda jak
pusty ciąg znaków, ale jest tam jedna spacja, to taka wartość zostanie uznana za
wartość prawdziwą, czyli tak jak byśmy tutaj podstawili true i wtedy ta linijka
się wykona i powinniśmy zobaczyć taki komunikat.
No i dokładnie to się tutaj stało i teraz
każda inna wartość jaką zobaczysz do końca już tego kursu,
będą jeszcze funkcje, tablice, obiekty,
cokolwiek co nie jest wypisane tutaj będzie traktowane jak wartość prawdziwa.
Nie jest to dla nas bez znaczenia właśnie
z tego powodu, że często możemy robić sobie po prostu
takiego if, jeżeli jakaś wartość jest, to możemy wykonać jakiś kod.
Nie musimy konkretnie porównywać czy ta wartość jest np.
równa pustemu ciągi znaków itd.
O tych porównaniach jeszcze w jednej z kolejnych lekcji.
Zapamiętaj sobie zatem, że mamy wartości takie jak prawda i fałsz, czyli true i
false, a także mamy wartości uznawane za fałszywe,
to są wszystkie te i za prawdziwe, czyli każda inna wartość.