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 powiem Ci o tym, jak w języku JavaScript można tworzyć zmienne i stałe.
I jak widzisz będziemy mieli już od teraz cały czas podłączony taki script main.js do
naszej strony internetowej, którą sobie tutaj otworzyłem z użyciem Live Serwera
i my nic nie będziemy na razie robić, co byłoby związane z samą stroną internetową
po prostu potrzebowaliśmy środowiska, w którym chcemy uruchamiać kod JavaScript i
mogliśmy wybrać albo przeglądarkę albo Node.js
Ja wybrałem przeglądarkę, bo z nią będziemy jeszcze później pracować.
Tak więc po prostu tutaj w konsoli będziemy widzieć wyniki naszych programów,
a sama strona internetowa nie ma tutaj większego znaczenia.
Natomiast później z użyciem skryptów będziemy oczywiście wpływać na to, co
dzieje się już bezpośrednio na naszej stronie internetowej.
W tej lekcji będę chciał Ci pokazać jak tworzy się zmienne, dlatego przejdziemy do
tego oto pliku i utworzymy sobie pierwszą zmienną, którą nazwę imię.
Co ważne, później w tym kursie będę używał
już angielskich nazw, bo jest to preferowany sposób tworzenia kodu,
natomiast w tej pierwszej lekcji chciałbym zrobić to po polsku, abyś wyraźnie widział
gdzie jest ten identyfikator, który ja sobie sam nadaję, takie jak np.
imię, a gdzie są poszczególne słowa,
których używamy właśnie w języku JavaScript.
Zatem najprostszy sposób, aby utworzyć
zmienną w języku JavaScript to użycie specjalnego słowa kluczowego let i
następnie podajemy nazwę tej zmiennej, więc ja ją nazwę imię.
Moglibyśmy również tutaj użyć polskich znaków,
to tak samo będzie działać. Więc zróbmy to w ten sposób.
Następnie jest operator przypisania, czyli znak równa się i tutaj podajemy wartość,
która ma być przechowywana pod właśnie identyfikatorem imię.
Te wartości mogą być różne.
O nich będziemy sobie mówić w lekcjach
kolejnych, czyli jakie typy danych można reprezentować w języku JavaScript,
natomiast na razie będę chciał sobie tutaj
przypisać wartość tekstową w cudzysłowach i będzie to Jan.
Następnie linijkę kończymy średnikiem,
który w niektórych sytuacjach jest opcjonalny, a w niektórych jest wymagany,
natomiast dobrą praktyką jest po prostu te wyrażenia średnikiem kończyć.
Możemy sobie w tej samej linijce lub poniżej utworzyć kolejną zmienną np.
nazwisko i przypiszemy
tutaj wartość Kowalski. Zakończę średnikiem.
Zauważ, że gdybym tutaj nie dał średnika nic nam się nie podświetla w edytorze,
to oznacza, że nie ma żadnego błędu, ale jeżeli bym to zapisał w jednej linii
już jakieś podświetlenia mamy dlatego, że byłby to błąd.
Dlatego jeżeli tutaj dam sobie średnik może to być w jednej linii i żadnego błędu nie ma.
Z tego powodu choćby dobrze jest kończyć takie wyrażenia średnikiem.
I oczywiście lepiej jest to zapisywać w sposób, który dla nas będzie czytelny, ale
z punktu widzenia języka JavaScript nie ma to znaczenia.
Tutaj możesz zrobić tak możesz zrobić tabulatory,
dla interpretera języka JavaScript nie ma
to najmniejszego znaczenia, a takie znaczenie ma to w niektórych
językach programowania. Czyli tam indentacja
czyli te wcięcia mają kluczowe znaczenie
w języku JavaScript one znaczenia nie mają.
Jak widzisz. Zostawimy sobie to jednak w taki sposób.
Myślę, że najbardziej czytelny.
I teraz mając już te dwie zmienne możemy w
naszym kodzie oczywiście się do nich odwoływać jak ten plik zapiszę
i kiedy ten plik jest bezpośrednio podłączony do strony internetowej, to na
tej stronie tutaj w konsoli będziemy do tych zmiennych mogli się odwołać.
Czyli mogę napisać imię i to zwróci mi
przechowywaną tam wartość Jan, a nazwisko zwróci mi Kowalski.
Nie zawsze oczywiście jest to pożądane, abyśmy do zmiennych, które mamy tutaj w
kodzie mogli się na stronie bezpośrednio odwoływać,
ale to już jest temat związany z zakresem zmiennych, o którym powiemy później.
Na razie jednak skupmy się na tym, jak te zmienne tworzyć.
No i właśnie zobaczyłeś taki najprostszy
sposób, czyli z użyciem słowa kluczowego let.
Żeby nie wpisywać tych identyfikatorów takich jak imię i nazwisko tutaj w
konsoli, tylko z poziomu naszego kodu je wypisać, to oczywiście możemy zrobić
console.log imię i możemy zrobić drugi console.log
nazwisko.
Czyli jak możesz zobaczyć
w kodzie JavaScript, do tych zmiennych odwołujemy się bezpośrednio
właśnie w taki sposób. Nazwaliśmy sobie to imię
i w całym naszym kodzie możemy się do tego odwoływać,
a to sprawia, że dokładnie w to miejsce zostaje podstawiona wartość
Jan. Zapisuje to no i oczywiście kiedy ten program się wykona to te dwa
console.logi zwrócą nam tutaj to co te zmienne przechowywały.
Kiedy utworzymy zmienną z użyciem let, to
jak sama nazwa wskazuje możemy zmieniać jej wartość. Więc moglibyśmy teraz poniżej
stwierdzić, że wartość zmiennej imię zmieniamy na np.
Tomasz. Wtedy robimy to w ten sposób.
Nie używamy już żadnego słowa kluczowego,
ale po prostu odwołuje się do zmiennej i przypisuje jej nową wartość.
Dokładnie tak to zrobię i jeżeli teraz
zrobię console.log imie to tam jest już zupełnie inna wartość.
Dlatego zobaczymy Jan Kowalski i następnie Tomasz.
Kolejnym typem, który możemy utworzyć już
niezmiennych, ale często mówi się o tym, że są to zmienne
chociaż tak naprawdę nie powinno się używać tego nazewnictwa, bo są to stałe,
są właśnie stałe. Czyli tworzymy jest z użyciem słowa const.
Możemy utworzyć np.
stałą, którą nazwę wiek i przypisze tutaj 30.
Teraz przypisałem wartość liczbową, ale o tym jeszcze powiemy w kolejnych lekcjach.
Mógłbyś również zapisać to w ten sposób.
Nie ma to w tej lekcji znaczenia,
ale utworzyliśmy coś podobnego jak zmienna z użyciem let, ale
zrobiliśmy to z użyciem słowa kluczowego const.
I teraz czym to się różni?
Otóż jak utworzymy sobie stałą z użyciem
const, to nie możemy zmieniać jej wartości.
Czyli jeżeli chciałbym następnie
napisać wiek równa się 31 to od razu zobaczymy, że mamy coś podświetlone.
Jeżeli zapiszę uruchomimy ten program w przeglądarce to zauważ, że ten silnik
JavaScript, który w przeglądarce wykonuje nasz kod zwrócił nam TypeError, czyli po
prostu zwrócił nam błąd, który mówi, że nie możemy przypisywać do stałej.
I właśnie po to tworzy się stałe, abyśmy w
żadnym miejscu naszego programu nie mogli zmienić ich wartości np.
przez przypadek.
Dlatego zobaczysz w tym kursie, że w
większości przypadków będziemy sobie tworzyć po prostu stałe, a tam gdzie
będziemy potrzebowali mieć właśnie zmienną, czyli taką konstrukcję, gdzie my
będziemy w którymś momencie zmieniać jej wartość
będziemy korzystać z let.
Na koniec powiem Ci, że jeżeli
kiedykolwiek miałeś do czynienia z językiem JavaScript, to mogłeś zauważyć,
że można tworzyć zmienne również z użyciem słowa var.
Czyli mógłbym napisać np.
var i powiedzmy zawód
równa się programista i w ten sposób utworzyć zmienną.
Pytanie czy to będzie działać?
Jak najbardziej tak.
I właśnie w ten sposób dawniej w języku JavaScript tworzyło się zmienne, ale od
standardu ES6 mamy dwa nowe słowa, takie jak let i const, które mają wiele przewag
nad var, nad którymi jednak teraz nie będziemy się skupiać, bo nie chcę na
początku zarzucić Cię zbyt wieloma takimi smaczkami czy technikaliami.
Zapamiętaj sobie, że możesz korzystać wyłącznie z let i const a var
jest to coś, co było w starszych wersjach języka JavaScript i w zasadzie nie ma
potrzeby, aby dzisiaj z tej konstrukcji korzystać.
Ostatnią istotną rzeczą, którą chcę Ci
powiedzieć jest to, jak możesz nazywać swoje zmienne.
Ja je tutaj nazwałem po polsku.
Użyłem samych jak widzisz liter.
Natomiast nazwa zmiennej może się zaczynać od dolara,
może się zaczynać również od podkreślnika lub od dowolnej litery.
Nie może się natomiast zaczynać od liczb.
Czyli nie mógłbym powiedzieć, że nazwę tę zmienną raz, dwa, trzy imię.
Od razu nam tutaj edytor podświetla
to byłby błąd, ale liczby mogą się
znajdować w nazwie zmiennej, jednak nie na samym jej początku.
Czyli mógłbym powiedzieć i123nie.
To jest poprawna nazwa, Nie ma żadnego problemu.
Więc po prostu sobie zapamiętaj, że możesz albo zaczynać od dolara.
Niektórzy to preferują, bo np.
w języku PHP zmienne tworzymy zawsze z użyciem tego dolara.
W języku JavaScript nie jest to konieczne.
Jest to zwykły znak, po prostu którego można użyć.
Może być podkreśli nawet dwa podkreśli i to też będzie poprawne,
nie ma problemu lub dowolna litera.
Mogą to również być wielkie litery, czyli mógłbym to zrobić w
ten sposób, ale język JavaScript zwraca uwagę na wielkość liter,
więc jeżeli utworzę zmienną gdzie na początku jest duże i tak jak to zrobiłem
tutaj i mamy imię, to wszędzie, gdzie się odwoływałem do imię,
będę również musiał się odwoływać po wielkiej literze.
Więc na to należy zwrócić uwagę i nie tylko
pierwsza litera oczywiście może być duża czy wielka.
Moglibyśmy zrobić w ten sposób.
Czyli wszystkie takie kombinacje są możliwe.
A więc na początku dowolna litera mała lub wielka, dolar lub podkreślnik,
natomiast później mogą być również cyfry.
To zatem tyle, jeżeli chodzi o sposoby tworzenia zmiennych.
Zapamiętaj, że zmienne tworzymy z użyciem let i możemy zmieniać
ich wartości, natomiast stałe tworzymy z użyciem const i ich wartości zmienić się
nie da, bo to zgłasza nam po prostu błąd i nasz program przestaje działać.