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.
Teraz pokażę Ci, jak możemy korzystać z operatora spread na obiektach.
Jest to operator, z którego mogliśmy już korzystać w przypadku tablic i on działa
również w pezypadku obiektów i będę chciał Ci pokazać do czego służy.
W tym celu utworzymy sobie dwa obiekty. Taki standardowy jak już wcześniej
widzieliśmy, gdzie będziemy mieli po prostu dane
osobowe jakiejś osoby, coś takiego i teraz będę chciał utworzyć drugi obiekt.
Tutaj mamy czysto hipotetyczną sytuację,
niemniej jednak ona nie ma żadnego znaczenia
żeby pokazać Ci jak działa ten operator.
Więc teraz utworzę sobie taką stałą jak programmer, czyli
programista i napiszemy, że job jest to programista i np.
salary czyli wynagrodzenie to słynne 15 tysięcy, czemu nie.
I teraz będziemy chcieli sobie utworzyć kolejny obiekt o nazwie employee czyli
pracownik, gdzie chciałbym po prostu połączyć te dwa obiekty.
Czyli chciałbym mieć obiekt gdzie będzie firstName, lastName, age, job i salary.
A więc chcę połączyć dwa obiekty.
I teraz tak w języku JavaScript można to
zrobić za pomocą takiego obiektu objekt globalnego, który ma metodę assign.
Czyli mogłoby to wyglądać tak, że tworzymy sobie stałą employee
w ten sposób i korzystamy z takiego globalnego
konstruktora, takiego obiektu Object i on ma metodę assign
i tutaj możemy podać dowolną liczbę parametrów.
Możemy powiedzieć, że do tego pustego
obiektu chcemy dodać wszystkie właściwości obiektu person, a także wszystkie
właściwości obiektu programmer w ten sposób,
ok, i to wygląda w ten sposób, że to co
jest na programmer jest jakby dodawane do person i do tego obiektu.
Finalnie to się znajduje na tym obiekcie. Jeżeli sobie wyświetlimy ten employee,
zobaczmy, to będziemy oczywiście mieli
obiekt, gdzie jest to wszystko co chciałem, czyli wszystko działa poprawnie.
Ale teraz chcę Ci pokazać jak to samo możemy uzyskać z użyciem operatora spread
na obiektach. I on działa również już od jakiegoś czasu w nowoczesnych
przeglądarkach internetowych, więc możesz śmiało z niego korzystać.
A zatem to wykomentuje i zrobimy to w ten sposób.
Podobnie jak w przypadku tablic, po prostu tworzymy sobie nowy obiekt.
Tu możemy dodawać jakiekolwiek właściwości
chcemy, ale ja chcę, żeby były tutaj tylko te, które są w tych dwóch obiektach.
A więc możemy zrobić tak, że robimy trzy
kropki, to jest ten operator spread i piszemy person,
następnie postawię przecinek i zrobimy trzy kropki i programmer.
W ten sposób znowu tutaj coś źle napisałem,
a to oznacza, że tutaj mieliśmy wcześniej już błąd
podstawmy sobie to wszędzie i to oznacza, że tworzymy nowy obiekt i do
niego rozstrzeliwujemy cały obiekt person, a więc tak naprawdę kopiujemy wszystkie jego
pola, wstawiamy tutaj i następnie to samo robimy z tym obiektem programmer.
No i zauważ, że efekt jest dokładnie taki sam.
Natomiast moglibyśmy tutaj, gdybyśmy
chcieli dodawać sobie kolejne właściwości, więc moglibyśmy tutaj napisać np. hobbies,
jakie ma ktoś hobby, podać jakąś tablicę itd.
Więc zapamiętaj z tej lekcji, że obiekt można jakby rozstrzelić takim operatorem spread
i działa to w przypadku tworzenia nowego obiektu, a więc wewnątrz nowego obiektu
możemy coś takiego zapisać i dzięki temu wszystko zostanie skopiowane.
Natomiast trochę starszym sposobem jest również Object.assign,
wtedy podajemy pusty obiekt i inne obiekty, które chcemy do niego skopiować.
Tu oczywiście nie musiał by być pusty
obiekt, on mógłby zawierać np.
tę tablicę hobbies, o której wspomniałem i
później dodatkowe obiekty moglibyśmy do niego skopiować.