Am început un nou proiect TypeScript și mă întrebam ce versiune JavaScript / ECMA Script să țintesc. În prezent, putem alege dintre ES5, ES2015, ES2016, ES2017 și ES2018!
Cele două lucruri majore care trebuie luate în considerare atunci când selectați versiunea țintă JavaScript sunt:
- Mediul țintă – Browser desktop? Mobil? NodeJS?
- De ce caracteristici JS am nevoie – Clase? Module? Funcții asincrone?
Suntem norocoși să ne aflăm în epoca browserului Evergreen, astfel încât suportul pentru cele mai recente caracteristici este foarte bun în majoritatea mediilor, însă există întotdeauna situații în care utilizatorii au dispozitive mai vechi, sau sunteți blocați pe o versiune mai veche de NodeJS.
Din acest motiv, recomandarea mea generală este să vizați cea mai veche versiune care are caracteristicile de care aveți nevoie. Acest lucru va oferi un bun echilibru între suportul unui mediu țintă larg și accesul la caracteristici noi impresionante 🙂
Mai jos am rezumat ceea ce consider a fi principalele caracteristici noi lansate în fiecare versiune ECMA Script. Pentru o listă cuprinzătoare, precum și pentru detalii complete privind suportul pentru mediile țintă, consultați minunatul tabel de compatibilitate al lui Kangax.
ES5 (2009)
- Aceasta este versiunea de bază a JS pe care se poate presupune, în general, că toate timpii de execuție (cu excepția celor foarte vechi!) o vor suporta.
ES6 / ES2015
- Moduli standard –
import
șiexport
- Promisiuni standardizate
- Classe & Moștenire
- Blocuri-variabile cu domeniu de cuprindere –
let
șiconst
- Template Literals
- Destructurarea obiectelor în variabile
- Funcții generatoare
- Structuri de date Map și Set
- Internaționalizare pentru șiruri de caractere, Numere și date prin
Intl
API
ES7 / ES2016
- Array.includes()
- Operatorul de exponent numeric (putere a)
**
ES8 / ES2017
- Funcții asincrone
- Object.entries
- Funcții de umplere a șirurilor
ES9 / ES2018
- Object Rest/Spread
const obj = { ...props };
- Iterare asincronă
for await (...) {
- Promisiune
finally()
funcție - Ambunătățiri ale expresiilor regulate (lookbehind, grupuri numite)
.