Quali sono le principali novità di ogni versione di JavaScript? A quale versione dovrei mirare?

author
1 minute, 26 seconds Read

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 e export
  • Promesse standardizzate
  • Classi &Eredità
  • Blocco-scoped variables – lete const
  • 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)

Similar Posts

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.