Allora stavo iniziando un nuovo progetto TypeScript e mi chiedevo a quale versione di JavaScript / ECMA Script mirare. Attualmente possiamo scegliere tra ES5, ES2015, ES2016, ES2017 e ES2018!
Le due cose principali da considerare quando si seleziona la versione target di JavaScript sono:
- Ambiente target – Browser desktop? Mobile? NodeJS?
- Di quali caratteristiche JS ho bisogno – Classi? Moduli? Async Functions?
Siamo fortunati ad essere nell’era del Browser Evergreen, quindi il supporto per le ultime caratteristiche è molto buono nella maggior parte degli ambienti, tuttavia ci sono sempre situazioni in cui gli utenti hanno dispositivi più vecchi, o si è bloccati su una vecchia versione di NodeJS.
Per questo motivo, la mia raccomandazione generale è di puntare alla versione più vecchia che ha le caratteristiche di cui hai bisogno. Questo darà un buon equilibrio tra un ampio supporto dell’ambiente di destinazione e l’accesso a nuove fantastiche caratteristiche 🙂
Di seguito ho riassunto quelle che vedo come le principali nuove caratteristiche rilasciate in ogni versione di ECMA Script. Per una lista completa, così come per tutti i dettagli sul supporto dell’ambiente di destinazione, controlla la fantastica tabella di compatibilità di Kangax.
ES5 (2009)
- Questa è la versione base di JS che puoi generalmente assumere che tutti i runtime (tranne quelli molto vecchi!) supporteranno.
ES6 / ES2015
- Moduli standard –
import
eexport
- Promesse standardizzate
- Classi &Eredità
- Blocco-scoped variables –
let
econst
- 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()
- Operatore esponente numerico (potenza di)
**
ES8 / ES2017
- Funzioni Asincrone
- Object.entries
- Funzioni di imbottitura di stringhe
ES9 / ES2018
- Object Rest/Spread
const obj = { ...props };
- Iterazione asincrona
for await (...) {
- Promessa
finally()
funzione - Miglioramenti delle espressioni regolari (lookbehind, gruppi denominati)