Začínám nový projekt v jazyce TypeScript a přemýšlím, na jakou verzi JavaScriptu / ECMA Script se zaměřit. V současné době si můžeme vybrat z ES5, ES2015, ES2016, ES2017 a ES2018!
Při výběru cílové verze JavaScriptu je třeba zvážit dvě hlavní věci:
- Cílové prostředí – desktopový prohlížeč? Mobilní prohlížeč? NodeJS?
- Jaké funkce JS potřebuji – Třídy? Moduly? Asynchronní funkce?
Máme to štěstí, že se nacházíme v době Evergreen Browseru, takže podpora nejnovějších funkcí je ve většině prostředí velmi dobrá, nicméně vždy se vyskytnou situace, kdy uživatelé mají starší zařízení nebo jste uvízli na starší verzi NodeJS.
Z tohoto důvodu je mé obecné doporučení zaměřit se na nejstarší verzi, která má funkce, které potřebujete. Tím dosáhnete dobré rovnováhy mezi širokou podporou cílového prostředí a přístupem k úžasným novým funkcím 🙂
Níže jsem shrnul, co považuji za hlavní nové funkce vydané v jednotlivých verzích ECMA Script. Úplný seznam, stejně jako všechny podrobnosti o podpoře cílových prostředí, najdete v Kangaxově úžasné tabulce kompatibility.
ES5 (2009)
- Jedná se o základní verzi JS, u které lze obecně předpokládat, že ji budou podporovat všechna běhová prostředí (kromě těch opravdu starých!).
ES6 / ES2015
- Standardní moduly –
import
aexport
- Standardizované přísliby
- Třídy & Dědičnost
- Bloky.rozsah proměnných –
let
aconst
- Šablona Literals
- Destrukce objektu do proměnných
- Generátor funkcí
- Datové strukturyMap a Set
- Internacionalizace pro řetězce, Čísla a data prostřednictvím
Intl
API
ES7 / ES2016
- Array.includes()
- Operátor číselného exponentu (mocniny)
**
ES8 / ES2017
- Asynchronní funkce
- Objekt.entries
- Funkce pro vyplňování řetězců
ES9 / ES2018
- Object Rest/Spread
const obj = { ...props };
- Asynchronní iterace
for await (...) {
- Promise
finally()
funkce - Regulární vylepšení výrazů (lookbehind, pojmenované skupiny)
.