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.
wiesz już mniej więcej jak pracuje się z npm natomiast w tej lekcji będę chciał ci pokazać
jak do naszego workflow wpiąć webpacka webpack jest to bardzo
zaawansowany tak zwany bundler kodu który pozwala nam tworzyć bandle
czyli paczki z wielu różnych modułów dla nas będzie istotne to że
webpack rozumie moduły es6 czyli zapis import czy export i na
tej podstawie pozwoli nam budować naszą aplikację czyli nawet jeżeli
przeglądarki nie rozumieją modułów to my po prostu podepniemy do przeglądarki zwykłych
skrypt który będzie złożony z różnych modułów a za nas wykona to webpack
warto wiedzieć że webpack jest narzędziem napisany w języku JavaScript i uruchamiany
w środowisku note js tak jak wspomniałem webpack jest bardzo zaawansowany
natomiast my się skupimy na tym co tylko dla nas będzie potrzebne czyli na
budowaniu naszej aplikacji z różnych modułów es6 a także
później na transpilowaniu kodu es6 do es5 jeżeli
byś chciał zobaczyć stronę webpacka to przyjdź sobie na webpackjs org i na tej
stronie znajdziesz więcej informacji natomiast ja będę chciał ci krok po kroku pokazać
jak zainstalować webpacka i go skonfigurować dlatego tą stronę sobie zamknę
no i może zaczniemy od instalacji tego narzędzia najpierw
przejdziemy do kodu i tutaj w katalogu 65 start
mam coś takiego coś to już widzieliśmy czyli skrypt który importował pewną klasę
pamiętasz i ta klasa importowała sobie inną i następnie ją rozszerzała
na spokojnie sobie do tego zerknij ale żadnej nowej linijki tutaj nie dopisałem tylko
teraz chciałbym zrobić tak żeby te moduły działały w przeglądarkach nawet w tych
które nie wspierają tego skryptu o typie module który już w tym kursie widziałeś
w tym pomoże nam webpack i będzie to bardzo proste natomiast musimy sobie
webpacka zainstalować dlatego przejdźmy do terminala w tej karcie
mam uruchomiony serwer który widzimy tutaj natomiast on nie jest nam konieczny akurat
tej lekcji widzisz tutaj komunikat że akurat ten przykład nie jest ładowany w tej
naszej aplikacji ale z drugiej karcie jestem tutaj już w katalogu zobacz
65 start więc do niego musisz przejść pamiętaj że możesz wpisać cd i
przeciągnąć ten katalog następnie wcisnąć enter tutaj będziemy chcieli
tak jak w lekcji poprzedniej utworzyć sobie plik package json pokazywałem
ci że możemy wpisać npm init i odpowiedzi na serię pytań natomiast jeżeli
na wszystkie od razu chcesz odpowiedzieć twierdząco to możemy zaoszczędzić klawisz
enter na klawiaturze wpisując minus y jak yes w ten
sposób odpowiemy od razu na wszystkie pytania twierdząco i zobaczmy że tutaj
pojawił się plik package json teraz będziemy do tego pliku chcieli coś dodać
instalując sobie odpowiednie moduły i naszym przypadku będzie to webpack
więc napiszmy npm install i następnie save dev
bo znowu jest to zależność dewelopmencka czyli podczas pracy webpack jest nam
potrzebny do bundlowania kodu ale on nie jest potrzebny samej aplikacji później
żeby się uruchamiała więc napiszmy webpack w ten sposób
webpack i wszystkie jego zależności się pobiorą do katalogu node modules no
i będziemy mogli z webpacka skorzystać chwilkę sobie
jeszcze poczekamy zaraz to powinno wszystko się zainstalować no już
prawie mamy wszystko i webpack powinien zostać tutaj dodany tak
też się stało i możemy z niego skorzystać tylko że normalnie musielibyśmy znowu
napisać node node modules bin webpack
i tak byśmy z niego korzystali natomiast żebyśmy mogli skorzystać od razu ze
słowa webpack w bardzo prosty szybki sposób to dodajmy sobie
tutaj skrypt nazwiemy sobie ten skrypt bundle i tutaj
wpiszemy webpack przypominam z lekcji poprzedniej że tutaj jeżeli wpiszesz
od razu nazwę tego pliku wykonywalnego to można powiedzieć że node znajdzie go
sobie w katalogu node modules nie trzeba tutaj podawać pełnej ścieżki I webpack
teraz oczekuje pewnych parametrów a więc przede wszystkim pliku wejściowego ważne
jest to że on zaczyna tworzenie tak zwanego drzewa zależności od jakiegoś
pierwszego pliku więc chciałbym mu wskazać plik scripts js i webpack
będzie podążał wszystkimi importerami czyli jakby wejdzie sobie do employee tutaj w
employee zaimportuje person zobaczy person coś importuje
nie jedynie coś eksportuje i tak dalej czyli on całe to drzewo zależności
sobie stworzy i połączy nam to wszystko w jeden plik ale musimy powiedzieć od czego
zacząć więc zobaczmy mamy tutaj package json w tym miejscu więc
będziemy chcieli jakby wejść do katalogu js i do pliku skryptu dlatego wpiszmy
coś takiego czyli od tego pliku proszę zacząć i tutaj podamy
drugi parametr czyli gdzie chcemy mówiąc brzydko wypluć ten gotowy
bundel czyli wszystko zostanie połączone i gdzie chcielibyśmy to wrzucić
w naszym przypadku przygotowałem plik index w którym podłączyłem sobie w katalogu dist
js właśnie ten bundle zaraz ten plik sobie uruchomimy więc chciałbym to wyrzucać
do pliku dist js dlatego napiszmy dist js chociaż on jeszcze
nie istnieje i tutaj bundle js czyli od tego
pliku zacznij połącz wszystko i zapisz w takim oto katalogu pod taką nazwą zobaczmy
teraz sobie tutaj możemy wpisać npm run przypominam bundle
czyli nazwa dokładnie tego skryptu i taka linijka się o wykona zobaczmy
okej pojawi nam się jakiś błąd zobaczmy co mogłem tutaj zrobić źle webpack
mówi że nie może znaleźć katalogu js i pliku scripts js zobaczmy
gdzie sobie tego wyszukuje czyli tutaj wydaje się że ścieżka jest poprawna 65
start zobaczmy ls mamy tutaj katalog jak widzisz jeszcze src
czyli ścieżkę podałem tutaj w tym przypadku niepoprawną bo wszystko zapisałem jeszcze
w katalogu src dlatego tutaj napiszmy src okej jak source
a do dist chciałbym to generować teraz ten błąd powinien zniknąć npm
run bundle zobaczmy i taki jest poprawny output
webpacka jeżeli uda mu się coś zrobić przy okazji pokazał nam które pliki przeanalizował
czyli mamy utworzony bundle powinien się pojawić w katalogu dist zerknijmy
jest i to może wyglądać na początku dziwnie ale webpack tutaj musiał
sobie dodać pewne swoje funkcje takie jak na przykład webpack require żeby
mógł poprawnie obsłużyć moduły bo przypominam co się stało otóż z trzech różnych modułów
utworzyliśmy 1 i teraz już nieważne czy przeglądarka wspiera importy i eksporty czy nie
ich tutaj po prostu nie ma webpack podał sobie swoje funkcje natomiast pomiędzy
nimi znajdziesz nasz kod taki jak na przykład class employee i tak
dalej tylko że ona na przykład rozszerzała pamiętasz person a tutaj rozszerza to
co zwróci nam właśnie taki długi zapis nie jest to dla nas istotne istotne
jest to że nasz kod się nie zmienił sam w sobie tylko został opakowany w taki
sposób żeby wszystko mogło być poprawnie importowane i eksportowane ale
kod z tych trzech modułów znajduje się teraz w jednym pliku i ja ten
plik podłączyłem sobie tutaj w index właśnie poprzez taki zapis
i chciałbym go uruchomić w przeglądarce więc ten plik byśmy chcieli sobie uruchomić
i robimy to poza naszą aplikacją czyli tutaj ona jest uruchomiona ale nie
jest nam konieczna pokażę ci jak to zrobić z użyciem http server przejdźmy
sobie do terminala i będąc tutaj czyli pamiętasz
jesteśmy w tym miejscu gdzie mamy package json zainstalujmy sobie znowu
jako save dev czyli deweloperska zależność http server jest
to bardzo fajne narzędzie też napisane w javascripcie uruchamiane w obrębie node które
pozwoli nam serwować pliki i teraz żeby go uruchomić znowu bo musimy sobie dodać
do package json po przecinku dodajmy nowy klucz nazwiemy
to serwer i chciałbym uruchamiać http server
i podamy mu jeszcze taki parametr minus c minus 1 czyli cache minus
1 dzięki temu nie będą cachowane w pamięci podręcznej te pliki jeżeli
tego nie podasz to czasami jak otwierasz stronę to po prostu stare pliki są serwowane tak
możemy sobie to uruchomić ok i teraz npm run server
powinienem uruchamiać serwer właśnie w tym miejscu więc zobaczmy raz jeszcze co
tutaj mamy mamy ten plik index w którym podłączyłem z katalogu dist ten
bundle więc napiszmy npm run server okej i
zobaczmy tutaj ci się pokaże adres pod jakim serwer się uruchomił możesz to skopiować
i tutaj sobie wrzucić i widzę po tytule że wszystko jest okej nie ma
tutaj żadnej treści na stronie ale gdybyśmy podejrzeli źródło zauważ że ten
bundle się tutaj wczytał i otwórzymy sobie konsole żeby sprawdzić
czy kod się uruchomił poprawnie widzimy nazywam się Jan Kowalski pracuję jako
programista czyli webpack pozwolił nam obejść jakby problem modułów
w przeglądarkach internetowych pakując nam wszystko do jednego pliku ale nie zmienił
naszego kodu czyli nadal jest to kod es6 co raz jeszcze możemy sobie tutaj
podejrzeć jak widzisz mamy zapis na przykład klasy czy
tutaj template stringu nic się nie zmieniło więc przeglądarka musi wspierać es6
ale nie musi już wiedzieć nic na temat modułów teraz pokażę ci
jeszcze jedną ciekawą rzecz odnośnie właśnie http servera jeżeli tutaj go dodaliśmy
to jest uruchamiany ten lokalny ale gdybyś chciał móc w dowolnym katalogu uruchomić sobie
serwer to możesz zainstalować globalnie jakiś moduł npm
tak by the way ten serwer zatrzymujemy wciskając control c jeśli
byśmy wpisali npm install minus g czyli global albo
z z dwoma kreskami można wpisać global http server to w ten sposób
możesz sobie zainstalować ten moduł globalnie i wtedy nie ważne gdzie będziesz
nieważne czy istnieje plik package json czy nie nie musi być katalogu node modules możesz wpisać
https server na przykład minus c minus 1 i taki serwer
też ci się uruchomi czyli gdybyś chciał w dowolnym miejscu móc uruchamiać taki serwer to
możesz sobie go zainstalować globalnie zatem zobaczyłeś jak instalować moduły lokalnie
do dev dependencies lub dependencies a z użyciem g można
zainstalować globalnie gdybyś dowolny z nich chciał usunąć to wpisujesz npm uninstall
i na przykład minus g http server usunie nam
globalny http server a jeżeli wpiszemy bez minus g to
usuniemy ten z katalogu node modules jeżeli chcesz go usunąć też z pliku package
json to dopisujesz na przykład save dev jeżeli znajdował on się w dev dependencies
nie będę tego robił ale wiesz już teraz że możemy instalować i odinstalowywać
moduły na koniec jeszcze chcę ci pokazać że nie musimy webpackowi
mówić w taki sposób tutaj w tym parametrze gdzie ma znaleźć te pliki ale
możemy i często będziemy to robić utworzyć specjalny plik więc ja sobie to
wykomentuje a stworzymy drugi skrypt który nazwiemy po prostu
webpack czy jeżeli uruchomisz samo polecenie webpack to wtedy
webpack będzie szukał specjalnego pliku który nazywa się webpack config js dlatego
teraz będę musiał go tutaj uruchomić czy w zasadzie utworzyć w katalogu
65 start będę chciał utworzyć plik
webpack config js jest to plik
node js ale javascriptowy czyli to co tutaj napiszę jest kodem javascript ale
nie uruchamianym absolutnie w przeglądarce on się uruchamia tutaj lokalnie w node js i w
tym pliku wpisujemy poprzez module export taki
obiekt konfiguracyjny czyli zapis jest JavaScriptowy jak wspomniałem ale uruchamiany
w node i tutaj możemy webpackowi powiedzieć gdzie ma znajdować odpowiednie pliki
i do jakiej katalogów je później mówiąc brzydko wypluwać jednym
z kluczy które musimy podać jest entry i tutaj sobie napiszemy src
czyli lokalnie do tego katalogu gdzie jesteśmy zauważ że webpack config
js jest tutaj więc kropka ukośnik kieruję na ten sam katalog
i do katalogu src następnie js scripts js więc to
jest tylko od którego chcemy zacząć tak samo jak podawałem go tutaj
a teraz z tym ona ci plik do którego ma to zostać wszystko wygenerowane i to
podajemy w takim klucz output który jest obiektem i posiada filename
gdzie możemy wpisać właśnie bundle js
ale dodatkowo musimy podać ścieżkę więc path i tutaj podajemy
ścieżkę tylko to co jest ważne akurat w tym miejscu nie zadziała taka ścieżka lokalna czy
w zasadzie ścieżka relatywna że chcę powiedzieć że tutaj jesteśmy do katalogu
dist to zrób i niech to będzie js no i filename
jest tutaj tutaj musimy podać ścieżkę absolutną jak to można zrobić otóż w node js mamy taki
moduł jak path więc mogę utworzyć stałą i za pomocą destructuringu o
którym też się w tym kursie już uczyliśmy zrobię sobie resolve równa
się require path w node js za pomocą require
można i includować moduły i cały taki zapis zwróci nam pewien obiekt w którym są różne
klucze jednym z nich jest resolve dlatego za pomocą destructuringu mogę samo resolve
wyciągnąć i tutaj będzie to oczywiście funkcja mogę ją wywołać
podając taką specjalną zmienną która zawsze jest w każdym
takim pliku wykonywanym w node jest to dir name i tutaj będzie absolutna ścieżka do
momentu w którym jesteśmy czyli do tego katalogu i do tego chcę sobie dodać jeszcze
coś takiego w zasadzie robię to w złym miejscu teraz się
zorientowałem powinniśmy to zrobić tutaj okej dir
name plus i tutaj napiszemy po prostu dist js nie jest
to w tym momencie dla ciebie aż tak istotne natomiast pamiętaj że to zwróci pełną ścieżkę i webpack
będzie zadowolony tyle nam wystarczy i jeżeli teraz wpiszemy sobie npm run bundle
pamiętasz że uruchomi się tylko polecenie webpack on sobie
znajdzie ten plik I wszystko powinno być okej widzimy że pojawił się jakiś błąd okej
już wiem dlaczego ten błąd się odnosi tutaj ja sobie to wykomentowałem jakbym był w pliku javascriptowym a jest to plik json
w którym to nie jest dozwolone więc z tego powodu pojawił się błąd wpiszmy raz jeszcze
npm run bundle zobaczmy i teraz webpack wszystko nam uruchomił
i wygenerował więc nasza aplikacja tutaj powinna działać tak samo gdybyśmy
uruchomili sobie serwer czyli npm run server odświeżmy
tutaj jak widzimy działa tak samo ale nie musimy już tutaj podawać opcji konfiguracyjnych
tylko wszystkie ładnie będziemy wpisywać w tym pliku co będziemy robić już następnej
lekcji natomiast na koniec tej lekcji chcę ci pokazać jeszcze jedną rzecz mianowicie zatrzymam
sobie ten serwer control c i chciałbym zainstalować bibliotekę jquery napiszmy jquery
i save że jest to normalne dependency jquery
powiedzmy jest nam potrzebne możesz zastanawiać się po co z npm pobiera jquery
otóż okazuje się że jquery gdybyśmy sobie do niej zajrzeli do katalogu node modules musiałbyś
przyjść do pliku jquery kropka js wspiera moduły czyli jest tak zrobione
że jest modułowe jeśli je podłączysz do przeglądarki internetowej to działa bez problemu ale zadziała
również w środowiskach które potrafią inkludować moduły to oznacza
tylko tyle że możemy sobie teraz w naszym pliku tutaj scripts
zaimportować jquery poprzez ten zapis ecmascript 6 wpiszmy
sobie import dolar from i wiesz że
skoro tutaj nie wpisuje takich nawiasów to znaczy że importuje coś co
jest eksportowane jako default to już powinieneś wiedzieć i to co jest super ważne w przypadku webpacka
jeżeli chcesz zaimportować coś co jest w katalogu node modulus to wpisujesz
tutaj po prostu tego nazwę nie podając żadnej ścieżki ja ci pokazywałam w przypadku
modułów w przeglądarce że tam one mogły się zaczynać od kropka slash dwie
kropki slash czy na przykład od samego slasha albo pełnego adresu http w przypadku
tutaj właśnie webpacka i node js gdzie jest to wykonywane wszystko działa
poprawnie jeżeli podamy takie ścieżki relatywne ale jeżeli podane jako ścieżkę
właśnie taką czyli samą nazwę to wtedy jest to ładowane z katalogu node
modules dzięki temu pod dolarem będę miał bibliotekę jquery i spróbujemy
sobie to sprawdzić czy to będzie działać na stronę chciałbym wstawić
poprzez dolar jeśli z jquery korzystałeś to powinieneś wiedzieć że tak można
to zrobić do body chciałbym
dodać sobie h jedynkę w której wpiszemy sobie w takim template stingu to
co mieliśmy w tym miejscu i zakończymy
h1 zobaczmy czy nam to zadziała musimy sobie zbundlować
czyli npm run bundle i npm run server
odświeżam stronę okazuje się że wszystko
działa ale co ciekawe jquery gdybym tutaj wpisał dolar dolar się
pokazuje ale nie jest to jquery jquery globalnie nie jest dostępne czyli to
jest jakby ciekawe w modułach i to już widziałeś w tym kursie że wszystko co w nich
mamy jest dla nich lokalne i podobnie dla nas zrobi webpack bo gdybyśmy do tego bundla
teraz zajrzeli możesz być ciekaw co się tutaj stało otóż teraz jest tutaj cała
biblioteka jquery załadowana bo właśnie ona została zassana
jakby z katalogu node modules czyli zapamiętaj że możemy jeżeli chcemy instalować różne
moduły z npm takie jak na przykład jquery i importować je sobie w dowolnym
z naszych plików a później to wszystko za pomocą webpacka jest ładnie w jedną całość połączone
pozostaje nam jednak jeszcze kwestia tego jak sprawić żeby ten kod
został przetranspilowany do es5 widziałeś że webpack połączył moduły ale
wciąż jest to kod ecmascript 6 a więc przeglądarka musi go wspierać i dlatego
w lekcji kolejnej pokażę ci jak taki kod przetranspilować do es5