Javascript jest lekkim, interpretowanym językiem programowania, który słynie ze swojej ponad 20 letniej obecności w portalach i serwisach internetowych.
Tak naprawdę ciężko wyobrazić sobie stronę, na której nie przydałby się choć kawałek dynamicznej funkcjonalności, a takimi właśnie zadaniami zajmuje się Javascript.
Bez niego strony są statyczne, czyli nadają się tylko do czytania tekstu i oglądania - bez interakcji z użytkownikiem.
Zerknijmy na zalety tego języka:
- Może działać zarówno po stronie przeglądarki jak i po stronie serwera (w ramach środowiska node, ale tym sie nie będziemy zajmować).
- Jest interpretowany, czyli nie wymaga kompilacji.
- Obsługuje interakcję użytkownika ze stroną poprzez mechanizm zdarzeń (kliknięcie myszy, naciśnięcie Enter i wiele innych).
- Działa w niemal każdej przeglądarce (z włączoną opcją Javascript).
- Umożliwia wykonywanie asynchronicznych wywołań.
- Jest stosunkowo łatwy do nauczenia się.
Co to jest ta ECMAScript?
Bardzo często gdy mówimy o Javascript pojawia się określenie ECMAScript. Może to trochę mieszać w głowie, ale tak naprawdę nie powinno.
ECMAScript to standard, według którego funkcjonuje język Javascript. Jeśli czegoś nie ma w obecnej wersji ECMA, nie będzie tego w Javascript.
Tak więc jeśli chcemy wiedzieć co można, a czego nie można wykonać w Javascript, wystarczy że poznamy możliwości bieżącej wersji ECMA.
Spoglądając nieco w stronę historii zauważymy, że miedzy 1999 a 2009 rokiem obowiązywała ciągle ta sama wersja ECMA - ECMAScript 3, a więc przez 10 lat mieliśmy ten sam Javascript.
W 2009 roku światło dzienne ujrzała wersja ECMAScript 5 (ES5), która wprowadziła wiele istotnych zmian, jak choćby wsparcie dla formatu JSON.
ECMAScript 2015 - Rewolucja
Prawdziwa rewolucja nastąpiła jednak dopiero w 2015 roku kiedy opublikowana została ECMAScript 2015 (ES6). Oto nasza subiektywna lista najważniejszych zmian:
- Stałe
- Arrow functions
- Interpolacja stringów
- Eksport/Import wartości z/do modułów
- Klasy w stylu prawdziwego OOP
- Dziedziczenie klas
- Promise (Obietnica) dla wywołań asynchronicznych
- Nowe metody tablic, stringów itp.
Od tej wersji wreszcie kod Javascript zaczyna wyglądać jak obiektowy język programowania. Przez to jest bardziej zrozumiały i wygodny w użyciu dla Javowca.
Możemy tworzyć klasy używając słowa
class oraz korzystać z konstruktora czy deklaracji metody bez używania słowa
function.
Wszystkie zmiany są bardzo dobrze opisane na stronie:
ES6 - Funkcjonalności
Kolejne wersje ECMAScript
Kolejne wersje ECMA pojawiają się do dziś w odstępach jednorocznych. Każda wprowadza jakieś nowości, ale nie są to duże zmiany.
- ECMAScript 2016
Skalowanie bloków zmiennych i funkcji, wzorce destrukcji zmiennych, operator potęgowania liczb, asynchroniczne słowa kluczowe.
- ECMAScript 2017
Nowe metody dla Object. Funkcje z zakresu współbieżności oraz integrację składni z promisami (obietnicami).
- ECMAScript 2018
Nowe operatory rest/spread (trzy kropki: ...identyfikator), wprowadzenie iteracji asynchronicznej, finally dla obietnicy.
- ECMAScript 2019
Nowe metody dla tablic, tworzenie obiektów z listy zawierającej key-value, nowe metody dla stringów itd.
Należy pamiętać, że nie wszystkie nowości działają od razu we wszystkich przeglądarkach. Dlatego przed użyciem nowego featura warto odwiedzić stronę tabeli zgodności
nowych mechanizmów Javascript z różnymi wersjami przeglądarek.
Przydatne linki:
Javascript Tutorial
ES6 - Nowe funkcjonalności
Nowości w ECMA 2016/2017/2018
Nowości w ECMA 2018
Nowości w ECMA 2019
Tabela zgodności dla przeglądarek
Mapa umiejętności programisty Java
Nie jesteś biegły w Javie?
Interesuje Cię szerszy zakres wiedzy?