Egy új TypeScript projektet indítottam, és azon gondolkodtam, hogy melyik JavaScript / ECMA Script verziót célozzam meg. Jelenleg az ES5, ES2015, ES2016, ES2017 és ES2018 közül választhatunk!
A JavaScript célverzió kiválasztásakor két fontos dolgot kell figyelembe venni:
- Célkörnyezet – asztali böngésző? Mobil? NodeJS?
- Milyen JS funkciókra van szükségem – Osztályok? Modulok? Async Functions?
Szerencsések vagyunk, hogy az Evergreen Browser korában élünk, így a legújabb funkciók támogatása nagyon jó a legtöbb környezetben, azonban mindig vannak olyan helyzetek, amikor a felhasználóknak régebbi eszközeik vannak, vagy a NodeJS egy régebbi verziójánál ragadtunk.
Emiatt az általános ajánlásom az, hogy a legrégebbi verziót célozzuk meg, amely rendelkezik a szükséges funkciókkal. Ez jó egyensúlyt biztosít a széleskörű célkörnyezet-támogatás és a félelmetes új funkciókhoz való hozzáférés között 🙂
Az alábbiakban összefoglaltam, hogy szerintem melyek a legfontosabb új funkciók, amelyeket az egyes ECMA Script-verziókban kiadtak. Az átfogó listát, valamint a célkörnyezet-támogatás teljes részleteit lásd Kangax fantasztikus kompatibilitási táblázatában.
ES5 (2009)
- Ez a JS alapverziója, amelyről általában feltételezhető, hogy minden futtatórendszer (kivéve a nagyon régieket!) támogatja.
ES6 / ES2015
- Szabványos modulok –
import
ésexport
- Szabványos ígéretek
- osztályok &öröklődés
- blokk-scoped variables –
let
ésconst
- Template Literals
- Object destructing into variables
- Generator functions
- Map and Set data structures
- Internacionalization for Strings, Számok és dátumok
Intl
API-n keresztül
ES7 / ES2016
- Array.includes()
- Numerikus exponens (hatvány) operátor
**
ES8 / ES2017
- Async Functions
- Object.entries
- String padding functions
ES9 / ES2018
- Object Rest/Spread
const obj = { ...props };
- Asynchronous Iteration
for await (...) {
- Promise
finally()
function - Regular expression enhancements (lookbehind, named groups)