Więc zaczynałem nowy projekt TypeScript i zastanawiałem się, jaka wersja JavaScript / ECMA Script powinna być celem. Obecnie możemy wybierać spośród ES5, ES2015, ES2016, ES2017 i ES2018!
Dwie główne rzeczy do rozważenia przy wyborze docelowej wersji JavaScript to:
- Środowisko docelowe – Przeglądarka stacjonarna? Mobilna? NodeJS?
- Jakie funkcje JS są mi potrzebne – Klasy? Moduły? Async Functions?
Mamy szczęście być w wieku Evergreen Browser, więc wsparcie dla najnowszych funkcji jest bardzo dobre w większości środowisk, jednak zawsze są sytuacje, gdy użytkownicy mają starsze urządzenia, lub utknąłeś na starszej wersji NodeJS.
Z tego powodu, moim ogólnym zaleceniem jest celowanie w najstarszą wersję, która ma funkcje, których potrzebujesz. Zapewni to dobrą równowagę między szerokim wsparciem środowiska docelowego i dostępem do niesamowitych nowych funkcji 🙂
Poniżej podsumowałem to, co uważam za główne nowe funkcje wydane w każdej wersji ECMA Script. Aby uzyskać pełną listę, jak również pełne szczegóły dotyczące wsparcia środowiska docelowego, sprawdź niesamowitą tabelę kompatybilności Kangax’a.
ES5 (2009)
- Jest to podstawowa wersja JS, którą można ogólnie założyć, że wszystkie run-times (z wyjątkiem naprawdę starych!) będą wspierać.
ES6 / ES2015
- Standardowe moduły –
import
iexport
- Standardowe obietnice
- Klasy & Dziedziczenie
- Block-.scoped variables –
let
iconst
- Template Literals
- Object destructing into variables
- Generator functions
- Map and Set data structures
- Internationalisation for Strings, Numbers and Dates via
Intl
API
ES7 / ES2016
- Array.includes()
- Operator wykładników liczbowych (potęg)
**
ES8 / ES2017
- Funkcje asynchroniczne
- Object.entries
- Funkcje wyściełające łańcuch
ES9 / ES2018
- Object Rest/Spread
const obj = { ...props };
- Asynchronous Iteration
for await (...) {
- Promise
finally()
function - Regular expression enhancements (lookbehind, named groups)
.