ES6 bez tajemnic

> Dodaj do ulubionych

Witaj w cyklu publikacji ES6 bez tajemnic! Jest to seria artyku艂贸w na temat j臋zyka ECMAScript 6, czyli nadchodz膮cej nowej wersji j臋zyka JavaScript. ES6 zawiera wiele nowych element贸w, dzi臋ki kt贸rym b臋dziesz m贸g艂 pisa膰 wydajniejszy kod i wyra偶a膰 za jego po艣rednictwem wi臋cej ni偶 dotychczas. Ka偶d膮 z nowo艣ci om贸wimy w kolejnych publikacjach. Nim jednak przejdziemy do szczeg贸艂贸w, po艣wi臋cimy chwil臋 na og贸lne zapoznanie si臋 z ze standardem ES6 鈥 czym jest i czego mo偶na si臋 spodziewa膰.

Co obejmuje ECMAScript?

Standard j臋zyka programowania JavaScript jest definiowany przez stowarzyszenie ECMA (organizacj臋 zajmuj膮c膮 si臋 standaryzacj膮, podobnie jak W3C) pod nazw膮 ECMAScript. Standard ten okre艣la mi臋dzy innymi:

  • sk艂adni臋 j臋zyka 鈥 regu艂y parsowania, s艂owa kluczowe, instrukcje, deklaracje, operatory itd.
  • typy 鈥 typ logiczny, liczbowy, 艂a艅cuchowy, obiektowy itd.
  • prototypy i regu艂y dziedziczenia
  • standardow膮 bibliotek臋 wbudowanych obiekt贸w i funkcji 鈥 JSON, Math, metody obiektu Array, metody introspekcji wywo艂ywane na obiektach itd.

ECMAScript nie definiuje natomiast 偶adnych aspekt贸w zwi膮zanych z j臋zykiem HTML, CSS, ani z sieciowymi interfejsami API, takimi jak DOM (obiektowy model dokumentu). S艂u偶膮 do tego osobne standardy. ECMAScript obejmuje za艣 te aspekty JS, kt贸re maj膮 nie tylko zastosowanie w przegl膮darkach internetowych, ale tak偶e w innych 艣rodowiskach, jak np. node.js.

Nowy standard

Niedawno zosta艂a zatwierdzona ostateczna wersja specyfikacji j臋zyka ECMAScript.

To istotna wiadomo艣膰 鈥 nowego standardu JS nie publikuje si臋 codziennie. Ostatnia aktualizacja, ES5, mia艂a miejsce w Od tamtej pory trwaj膮 prace komisji ds. standard贸w ES nad wersj膮 ES6.

ES6 wnosi wiele zmian do JavaScriptu, ale stary kod nadal b臋dzie funkcjonowa艂 poprawnie 鈥 wersj臋 ES6 opracowano pod k膮tem maksymalnej zgodno艣ci z obecnie pisanym kodem. Wiele przegl膮darek ju偶 obs艂uguje r贸偶ne elementy standardu ES6, a prace nad implementacj膮 kolejnych trwaj膮. Oznacza to, 偶e kod JS, kt贸ry pisa艂e艣 dotychczas ju偶 dzia艂a w przegl膮darkach, kt贸re mog膮 implementowa膰 niekt贸re sk艂adniki ES6! Je艣li do tej pory nie mia艂e艣 偶adnych problem贸w ze zgodno艣ci膮 to ju偶 prawdopodobnie nigdy ich nie do艣wiadczysz.

Liczymy do 6

Poprzednie wersje standardu ECMAScript nosi艂y numery 1, 2, 3 i 5.

Co si臋 sta艂o z wersj膮 numer 4? Swego czasu planowano 4. edycj臋 ECMAScriptu 鈥 i tak naprawd臋 w艂o偶ono w ni膮 wiele pracy 鈥 jednak ostatecznie ze standardu zrezygnowano, poniewa偶 uznano go za zbyt ambitny (mia艂 np. wyszukany opcjonalny system statycznego typowania z typami parametryzowanymi i inferencj膮 typ贸w).

ES4 budzi艂 kontrowersje. Gdy komisja ds. standaryzacji zako艅czy艂a ostatecznie prace nad t膮 edycj膮 standardu, cz艂onkowie komisji zgodzili si臋 upubliczni膰 stosunkowo sk膮p膮 wersj臋 ES5, by przej艣膰 do pracy nad nowymi, bardziej znacz膮cymi elementami. To wynegocjowane porozumienie zyska艂o nazw臋 鈥濰armony鈥 i ze wzgl臋du na nie do specyfikacji ES5 w艂膮czono poni偶sze dwa zdania:

ECMAScript to 偶ywy j臋zyk, kt贸rego rozw贸j nie dobieg艂 jeszcze ko艅ca. Wraz z nowymi edycjami niniejszej specyfikacji b臋d膮 wprowadzane istotne poprawki.

O艣wiadczenie to mo偶na by艂o odczyta膰 jako obietnic臋.

Spe艂nione obietnice

ES5, wersja j臋zyka z , zawiera艂a takie nowo艣ci, jak funkcje Object.create() i Object.defineProperty(), metody pobieraj膮ce i ustawiaj膮ce, tryb 艣cis艂y (ang. strict mode) oraz obiekt JSON. Korzystam z nich wszystkich i podobaj膮 mi si臋 usprawnienia wprowadzone w ES5, jednak nie mog臋 powiedzie膰, by kt贸rekolwiek z wymienionych udogodnie艅 mia艂o olbrzymi wp艂yw na to, jak pisz臋 kod JavaScript. Dla mnie prawdopodobnie najistotniejsz膮 innowacj膮 by艂y nowe metody obiektu Array: .map(), .filter() itd.

W przypadku ES6 mamy do czynienia z czym艣 innym. To owoc harmonijnej kilkuletniej pracy i skarbnica nowych element贸w funkcjonalno艣ci j臋zyka oraz jego bibliotek. ES6 stanowi najwa偶niejsz膮 aktualizacj臋 JS w historii. W wersji tej znajdziemy szereg nowych funkcji, od mile widzianych usprawnie艅, takich jak funkcje strza艂kowe (ang. arrow functions) czy prosta interpolacja 艂a艅cuch贸w, po nowe rozwi膮zania takie jak obiekty po艣rednicz膮ce i generatory, kt贸rych zrozumienie wymaga nie lada wysi艂ku.

ES6 zmieni spos贸b, w jaki piszesz kod JSJS, a niniejsza seria artyku艂贸w poka偶e ci dlaczego. Prze艣ledzimy w niej nowe funkcje ES6, z jakich mog膮 skorzysta膰 programi艣ci JavaScript.

Zaczniemy klasycznie, od 鈥瀊rakuj膮cego elementu鈥 JavaScriptu, o kt贸rym marzy艂em przez wi臋ksz膮 cz臋艣膰 ostatniej dekady. Odwied藕cie nas zatem wkr贸tce 鈥 przyjrzymy si臋 iteratorom w ES6 oraz nowej p臋tli for-of.

Spis tre艣ci

Autor: Jason Orendorff

殴r贸d艂o: https://hacks.mozilla.org/2015/04/es6-in-depth-an-introduction/

T艂umaczenie: Joanna Liana

Tre艣膰 tej strony jest dost臋pna na zasadach licencji CC BY-SA 3.0