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.
w tej lekcji krótko dodamy sobie metody do pracy z treścią takie jak tekst i
html oczywiście w razie czego możesz je później dalej rozwijać ale dodamy
to sobie w osobnym module chcę ci teraz pokazać jak to zrobić dzięki temu że mamy już solidne
podwaliny pod naszą bibliotekę to teraz możemy tutaj w library dodawać sobie kolejne moduły
dlatego będę chciał w tym przykładzie 72 start
js i library dodać sobie coś takiego content js podobnie
jak wcześniej będziemy tutaj eksportować default i będzie to po prostu taki
oto obiekt który będzie miał metody które zaraz dodamy sobie do prototypu
jak je dodać do prototypu equery bardzo prosto tak jak importowaliśmy
sobie attribute iteration tak samo zrobimy z content czyli
chcę tutaj sobie zaimportować content i przekażę to po prostu z naszej mixiny
zobacz świetna jest taka mixina to możemy do niej przekazywać dowolne obiekty i
one wszystkie dodadzą się pamiętasz do tego prototypu funkcji która ostatecznie
jest zwracana i to ją tutaj rozszerzamy więc będę chciał sobie dodać
metody które pozwolą nam na takich elementach ustawiać ich html czyli chciałbym
móc napisać lis może text najpierw nowy
tekst i na stronie widzimy że mamy element
1 element 2 i tak dalej i tutaj mamy błąd że tekst nie jest funkcją ale
teraz ją sobie dodamy tutaj w content ja od razu ją wkleję znowu
będzie działać tak jak wcześniej czyli jeżeli podamy tylko samo
tekst w ten sposób to chcemy z pierwszego elementu zwrócić jego
wewnętrzny tekst natomiast jeżeli podamy nowy tekst to wszystkim chcemy go ustawić więc
jeżeli value ma wartość undefined nie zostało podane to wtedy chcę tylko
z pierwszego elementu zwrócić z obiektowego modelu dokumentu właściwością text
content jego treść natomiast jeżeli zostało podane tą metodą this each iterujemy
po wszystkich i ustawiamy ich text content na value czyli tutaj nie powinno
znowu być nic nowego odświeżmy i zobaczymy widzimy nowy tekst
natomiast gdybyśmy sobie tutaj zrobili w console log to
w ten sposób i tutaj usuniemy nowy tekst to wtedy zwrócimy
sobie element listy 1 jak zatem widzisz tak to może
wyglądać i teraz dodajmy sobie jeszcze metodę do pracy z html którą teraz wkleję
tutaj poniżej i ona będzie działać dokładnie tak samo tylko
będzie ustawiać i zwracać inner html a nie text dzięki temu będziemy
mogli tutaj napisać na przykład li html i ustawić
nowy html na przykład na b i tutaj powiedzmy napiszemy sobie nowa treść w
przypadku text content to b nie zostałoby sprarsowane jako poprawny
ciąg htmlowy a tak jak widzisz wszystko działa poprawnie natomiast występuje tutaj
w chrome jeżeli pracujemy z modułami jakiś problem z kodowaniem który już też
w tym kursie wcześniej widziałeś nie wiem dokładnie dlaczego natomiast w innych przeglądarkach tego
problemu nie widziałem także na razie nie będziemy się na tym skupiać jest to wersja chrome canary
więc być może po prostu taki back w niej jest to zatem
tyle w tej lekcji dodaliśmy sobie dwie metody tekst i html jak
widzisz można tutaj dodawać kolejne gdyby nam takie metody były potrzebne