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.
Następną pętlą, którą omówimy w języku JavaScript, jest pętla for in i ona służy
głównie do iterowania po właściwościach obiektu. Czyli zobacz
mam tutaj taki obiekt, gdzie wpisałem sobie imię, nazwisko, wiek.
Zapisałem to w formie takich stringów, ale mogłoby to być również bez tych
cudzysłowów i teraz będę chciał przeiterować po wszystkich
właściwościach, czyli właśnie tych kluczach tego obiektu i je sobie wyświetlić.
Więc ta pięta wygląda tak, że piszemy for
i następnie tworzymy sobie zmienną, pod którą będzie przechowywany klucz.
Czyli możemy powiedzieć np.
key jak klucz in person, czyli tutaj podajemy obiekt. I to
oznacza tylko tyle, że za każdą iteracją tej pętli tutaj pod key będziemy mieli
imię, nazwisko, wiek po kolei. Czyli tyle razy się wykona ile jest kluczy w tym
obiekcie i pod key będzie właśnie taka wartość.
Co zatem możemy zrobić?
Wyświetlimy sobie w konsoli w takim Template String klucz, czyli np.
imię i będę chciał zrobić potem dwukropek nazwisko.
Więc jakby to wyglądało. Zinterpolujemy sobie
tutaj key czyli jak mówiłem pod key będzie np.
imię, potem sobie dodamy np.
dwukropek i chcę wyświetlić wartość.
A więc jak odwołać się do tej wartości
Maciej mając odwołanie do imię?
Otóż jeżeli mamy dostęp do obiektu person
to moglibyśmy powiedzieć person imię i to nam zwróci
Maciej. To skoro pod key mamy imię to możemy dokładnie coś takiego zrobić.
Również sobie to tutaj zinterpoluje,
odwołam się do person i następnie do key, który właśnie przyjął wartość imię
w tej iteracji pierwszej pętli. Zobaczmy jak to wygląda.
Oczywiście wyświetli nam to jak widzisz cały obiekt.
Innym ciekawym zastosowaniem może być
kopiowanie wartości z jednego obiektu do drugiego.
Bo pokazywałem Ci w tym kursie, że jeżeli
byśmy sobie utworzyli person 2 i przypisali tam person 1 czyli ten obiekt to będziemy
mieli tak naprawdę dwie stałe, które kierują na ten sam obiekt.
A jeżeli chciałbym utworzyć nowy obiekt to mogę utworzyć go tutaj.
To jest zupełnie nowy obiekt i teraz za
pomocą pętli for przekopiować wszystkie dostępne tutaj klucze i ich wartości.
Zrobilibyśmy to tak.
For let key in person, czyli dokładnie tak samo i iterujemy po tym pierwszym
obiekcie i będę chciał jego właściwości przekopiować do drugiego obiektu.
Więc mogę powiedzieć person 2 key,
czyli tu zostanie podstawione np.
imię i chcę to ustawić na taką wartość jak person 1 key.
Mam nadzieję, że to jest jasne. Czyli person 2 imię
ustawiam na to co pobrałem z person 1 pod kluczem imię czyli będzie to Maciej.
Jeżeli coś takiego zrobimy i na końcu
wyświetlimy sobie ten obiekt person 2 to on powinien być jak widzisz identyczny jak
obiekt person 1, natomiast są to dwa różne obiekty.
Gdybyśmy je porównali czy person równa się person 2 otrzymamy false, bo nie są to
dokładnie te same obiekty. One tylko mają identyczne właściwości i ich wartości.