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ę „Harmony” 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 „brakują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