Nowy Standard JavaScript
10 godz. 43 min · JavaScript · Full-stack i Programowanie
Piotr PalarzWeb DeveloperNa początku dowiesz się jakie nowości pojawiły się w języku, jeśli chodzi o tworzenie zmiennych i stałych. Poznasz dwa nowe słowa let i const, a także dokładnie omówimy ich różnice, względem znanego nam do tej pory słowa var. Następnie poruszymy temat obiektów. Zobaczysz jak nowy zapis pozwoli znaczenie ułatwić nam pracę i sprawić, by kod był bardziej czytelny. W kolejnym rozdziale porozmawiamy o zmianach w funkcjach. Poznasz tzw. arrow functions wraz z poradami, kiedy z nich korzystać, a także z konsekwencjami ich użycia. Zobaczysz również, jak korzystać z domyślnych parametrów. Następną nowością będą operatory rest i spread, które znacząco uproszczą pisanie kodu dla funkcji i tablic. Chwilę później rzucimy okiem na bardzo ciekawy temat, mianowicie na tzw. destructuring. To nowa funkcja języka, która pozwala w łatwy sposób wyciągnąć odpowiednie dane z tablic i obiektów, nawet jeżeli te posiadają kilkupoziomową, zagnieżdżoną strukturę. Zmian doczekały się również ciągi znaków. Poznasz nowy zapis, tzw. template string, a także możliwość wykorzystania funkcji tagujących.
ES6 wprowadza do języka JavaScript zapis klas. I choć na początku wydaje się, że to duży krok w stronę klasycznych obiektowych języków programowania, to jak się przekonasz, jest to w dużej mierze tzw. syntactic sugar, a więc zupełnie nowy, prostszy zapis, a prawie identyczne jak wcześniej działanie, oparte na dziedziczeniu prototypowym. W kursie poruszymy również temat Symboli oraz tego jak z nimi pracować, a chwilę później poznasz iteratory. To konstrukcje ułatwiające iterację, które znacząco upraszczają pracę z kolekcjami danych. Wraz z iteratorami poznasz również generatory, które ułatwiają z kolei tworzenie tych iteratorów. Istotną nowością w ES6 są również natywne Promise. To sposób na rozwiązanie problemu asynchroniczności, który znamy od bardzo dawna w postaci różnych bibliotek. Od teraz jednak Promisy znajdują się bezpośrednio w języku. Nowymi konstrukcjami, które pozwalają pracować z kolekcjami danych, są Map i Set. Dowiesz się jak z nich korzystać, a także do czego są przydatne. W jednym z rozdziałów rzucimy też okiem na tzw. Proxy API. To mechanizm języka, który pozwala na dość niskopoziomowy dostęp do różnych operacji. I choć być może nie jest to coś, z czego będziesz korzystał nad wyraz często, to warto wiedzieć, jakie są nowe możliwości tego API.
Jedną z najlepszych nowości, która zawitała do języka JavaScript wraz z ES6 są moduły. To możliwość dzielenia kodu na wiele plików, z których można pewne wartości wyeksportować, a następnie zaimportować je w innych modułach. Tutaj dowiesz się wszystkiego, co z modułami związane. Zobaczysz wiele sposobów na eksport i import, a także jak pracować z modułami w przeglądarkach internetowych. Kurs skupia się na omówieniu wszystkich najważniejszych nowości w ES6, dzieląc je na rozdziały. Jeden z nich natomiast, poświęcony został omówieniu mniejszych zmian, które znalazły się w specyfikacji. Poznasz w nim np. nowe metody tablic czy ulepszoną współpracę z Unicode.
Specyfikacja EcmaScript 2015 wprowadziła naprawdę bardzo wiele zmian, ale jej twórcy założyli, że od tego czasu każda kolejna wersja specyfikacji będzie pojawiać się co roku. Oznacza to przede wszystkim, że nie będziemy na raz bombardowani aż tak wieloma zmianami, jak w 2015 roku. W tym kursie nie zabrakło zatem omówienia nowości ze specyfikacji ES2016 oraz 2017, gdzie poznasz np. nowe metody dla stringów czy funkcje asynchroniczne.
Kiedy będziesz już uzbrojony w solidną wiedzę z zakresu nowości w ES6, dowiesz się jak w praktyce pracuje się dzisiaj z tym standardem. W jednym z rozdziałów omówimy nowoczesny workflow z użyciem npm i wykorzystamy popularne narzędzie webpack, do pracy z modułami, a także do transpilowania kodu ES6 do wersji ES5. Dzięki temu nowoczesny kod, który napiszemy, będzie mógł być uruchamiany również w starszych przeglądarkach, które nie wspierają najnowszego standardu. Dowiesz się na co zwrócić uwagę, by wszystko działało bez zarzutu.
Zwieńczeniem tego kursu będzie praktyczny projekt, w którym od podstaw wykonamy swoją własną bibliotekę do pracy z Obiektowym Modelem Dokumentu. Będzie ona w działaniu nieco podobna do znanej chyba wszystkim biblioteki jQuery. Na tym przykładzie postaramy się wykorzystać jak najwięcej wiedzy z zakresu ES6 zdobytej wcześniej. Stworzymy metody do pracy z drzewem dokumentu, a więc do wyszukiwania elementów, do tworzenia nowych, do przypisywania im klas, atrybutów czy styli CSS. Nie zabraknie również modułu odpowiedzialnego za współpracę z Ajax. Cały kod utworzymy oczywiście w sposób modułowy, aby bibliotekę można było łatwo rozwijać w przyszłości. Na koniec projekt ten przetranspilujemy do kodu ES5 z użyciem Babel i przetestujemy w starszej przeglądarce Internet Explorer 11, aby upewnić się, że nasza biblioteka działa poprawnie.
Kurs ten jest dla wszystkich osób, które znają już język JavaScript i czują się w pracy z nim swobodnie. Jeśli zatem chciałbyś pracować z nowoczesnym kodem JavaScript, to ten kurs jest zdecydowanie dla Ciebie. A może masz zamiar poznać framework Angular lub bibliotekę React? Tam również wykorzystywany jest najnowszy zapis ES6, więc wiedza ta będzie naprawdę pomocna. Z solidną wiedzą z zakresu EcmaScript 6, bez trudu pozostaniesz na bieżąco z każdą kolejną edycją tej specyfikacji.
Zanim już na dobre zaczniemy poznawanie ES6, to chciałbym Ci jeszcze powiedzieć
w kilku słowach, jak jest ułożony ten kurs i dlaczego, więc na początek
zaczniemy sobie od zmian w tworzeniu zmiennych, bo jest to coś co pozwoli nam
już później cały czas na tym pracować, czyli kurs starałem się ułożyć w taki sposób, aby
rzeczy, których się nauczysz w jednym rozdziale móc wykorzystywać później
w kolejnym, czyli nie robimy czegoś czego nie możesz zrozumieć, bo brakuje ci
jeszcze jakiś wcześniejszej wiedzy, tylko robimy to w jakiejś takiej logicznej kolejności. Dlatego
później zobaczysz nowości w litrałach obiektów, które też nam się później będą
przydawać. Zmiany w funkcjach to jest ciekawy dział, w którym zobaczysz
zarówno nowy zapis funkcji tak zwanych funkcji strzałkowych, ale także kilka
innych zmian w samych funkcjach. Między innymi skrócony zapis czy
coś co jest związane z właściwością name. Teraz nie będziemy się w to w głębiać, ale
później o tym powiemy. Następną rzeczą są świetne operatory rest i spread. Całkowita
nowość w ES6 i to jest z kolei znowu coś, co będziemy wykorzystywać
jeszcze później wielokrotnie. W kolejnym rozdziale zajmiemy się dekompozycją
lub z języka angielskiego tak zwanym destructuring'iem, który jest dostępny na obiektach,
a także na tablicach. Następnie rzucimy okiem na zmiany w ciągach
znaków i tutaj zobaczysz zarówno nowy zapis string'u, jak i
tak zwane funkcje tag'ujące. Jednym z ciekawszych, według mnie,
rozdziałów będzie rozdział poświęcony klasom. Zobaczysz w jaki sposób możemy
tworzyć klasy w języku JavaScript, a także jak one są podobne
do tego co znaliśmy wcześniej w standardzie EcmaScript5. W kolejnym
rozdziale poznamy całkowitą nowość, która zawitała do języka JavaScript, a będą to symbole.
Zarówno tworzenie własnych symboli, jak i symbole wbudowane, które jak
zobaczysz wiele rzeczy pozwolą nam osiągnąć. Następnie
poznasz iteratory od podstaw całkowicie pokażę ci czym jest iterator i jak
można go ręcznie całkowicie od podstaw napisać. Natomiast później poznasz również
generatory, a są to takie funkcje, które pozwalają nam zwracać iterator,
czyli najpierw zobaczysz jak stworzyć iteratory ręcznie, a później kiedy będziesz rozumiał
Jak działają, zobaczysz jak generatory mogą ten proces ułatwić. Z tym
tematem również będzie się wiązał temat promise, czyli tak zwanych obietnic. Zobaczysz,
po pierwsze, co one do nas mogą zrobić, ale także jak współpracują z generatorami. W
kolejnym rozdziale poznasz dwie nowe konstrukcje. Jest to map i
set i również będzie do WeakMap i WeakSet. Zobaczysz do
czego one służą, w jaki sposób są podobne do obiektów lub tablic. W jednym
z rozdziałów porozmawiamy sobie również o nowym proxy API, które pozwoli nam
na niskopoziomowy dostęp do różnych mechanizmów języka JavaScript. Jedną
z najlepszych nowości w ES6 są moduły, dlatego będę chciał ci pokazać jak tworzyć
moduły, jak można z nich eksportować wartości. W innych modułach jak można importować,
a także pokażę ci w jaki sposób z modułami pracuje się w przeglądarkach
internetowych. Później rzucimy okiem na mniejsze zmiany
w ES6, w jednym z rozdziałów po prostu będziemy mieli kilka różnych nowości zgrupowanych
właśnie jako troszkę mniej istotne zmiany, ale takie, które również warto znać.
Wszystko to, co widzisz teraz na ekranie, są to nowości dostępne w EcmaScript
6, czyli w standardzie z 2015 roku. Był naprawdę rewolucyjny i bardzo
wiele nowości wprowadził. Natomiast później, co roku, jest taki zamiar twórców,
aby wydawać nową specyfikacje i w 2016 roku powstała również
nowa specyfikacja i dlatego będziemy chcieli sobie zobaczyć co w niej jest nowego, nie
ma tam wielu nowości, ale warto je poznać. Rzucimy również okiem następnie na nowości
w specyfikacji EcmaScript 2017. Kiedy będziesz
miał już solidną wiedzę z zakresu ES6, to będę chciał ci pokazać jak dzisiaj
pracuje się z takim kodem i będziemy mieli rozdział o nowoczesnym workflow z npm
i z tym się będzie również wiązać to, że pokażę ci jak
wykorzystywać na przykład webpack'a, a jest to narzędzie, które ułatwi nam pracę między
innymi z modułami ES6, ale także z zamianą kodu ES6
na kod ES5 w taki sposób, aby mógł on współpracować również ze
starymi przeglądarkami internetowymi. Lekcje są podzielone w taki sposób, abyś
mógł do niech wracać kiedy, na przykład, będziesz chciał przypomnieć sobie jak działają promise czy, na
przykład, czym jest set. Będziesz mógł do tych lekcji wrócić i tego się dowiedzieć, natomiast
już mając tą wiedzę będziemy chcieli ją wykorzystać do stworzenia praktycznego projektu
i będzie on na końcu tego kursu, a będzie to biblioteka DOM,
taka troszkę podobna do biblioteki jQuery, więc napiszemy ją z użyciem jak
największej liczby tych nowości z ES6, a także później pokażę
ci w jaki sposób ją przetranspilować do kodu ES5, aby działała w starszych
przeglądarkach. Przetestujemy sobie również w przeglądarce Internet Explorer 11, aby
upewnić się że wszystko działa, jak należy. Bibliotekę tę wyeksportujemy w
taki sposób, aby wspierała moduły UMD, czyli Universal Module Definition, dzięki
czemu będzie możliwe zaimportowanie jej w różnych środowiskach, w tym również w przeglądarce
internetowej. To zatem tyle, jeżeli chodzi o to jak ułożony jest
ten kurs. Mam nadzieję, że jesteś ciekaw wszystkich tych nowości, dlatego zapraszam
cię już do pierwszych praktycznych lekcji gdzie pokażę ci, jak działają nowe
zmienne.