Skip to content

ECMAScript 2015 (ES6) e successive

Node.js è costruito su versioni moderne di V8. Mantenendosi aggiornato con le ultime versioni di questo motore, garantiamo che le nuove funzionalità della specifica JavaScript ECMA-262 vengano fornite agli sviluppatori Node.js tempestivamente, così come continui miglioramenti delle prestazioni e della stabilità.

Tutte le funzionalità di ECMAScript 2015 (ES6) sono suddivise in tre gruppi per le funzionalità shipping, staged e in progress:

  • Tutte le funzionalità shipping, che V8 considera stabili, sono attivate per impostazione predefinita su Node.js e NON richiedono alcun tipo di flag di runtime.
  • Le funzionalità staged, che sono funzionalità quasi completate ma non considerate stabili dal team V8, richiedono un flag di runtime: --harmony.
  • Le funzionalità in progress possono essere attivate individualmente dal rispettivo flag harmony, sebbene ciò sia fortemente sconsigliato se non per scopi di test. Nota: questi flag sono esposti da V8 e potrebbero cambiare senza alcun preavviso di deprecazione.

Quali funzionalità vengono fornite di default con quale versione di Node.js?

Il sito web node.green offre un'eccellente panoramica delle funzionalità ECMAScript supportate in varie versioni di Node.js, basate sulla tabella di compatibilità di kangax.

Quali funzionalità sono in progress?

Nuove funzionalità vengono costantemente aggiunte al motore V8. In generale, aspettati che vengano rilasciate in una futura versione di Node.js, sebbene i tempi siano sconosciuti.

È possibile elencare tutte le funzionalità in progress disponibili su ogni versione di Node.js cercando nell'argomento --v8-options. Si prega di notare che queste sono funzionalità incomplete e possibilmente non funzionanti di V8, quindi utilizzale a tuo rischio e pericolo:

sh
node --v8-options | grep "in progress"

Ho la mia infrastruttura configurata per utilizzare il flag --harmony. Dovrei rimuoverlo?

Il comportamento attuale del flag --harmony su Node.js è quello di abilitare solo le funzionalità staged. Dopotutto, ora è sinonimo di --es_staging. Come accennato sopra, queste sono funzionalità completate che non sono ancora state considerate stabili. Se si desidera giocare sul sicuro, soprattutto negli ambienti di produzione, prendere in considerazione la rimozione di questo flag di runtime fino a quando non viene fornito di default su V8 e, di conseguenza, su Node.js. Se lo si mantiene abilitato, è necessario essere preparati ad aggiornamenti successivi di Node.js che potrebbero interrompere il codice se V8 cambia la sua semantica per seguire più da vicino lo standard.

Come faccio a trovare quale versione di V8 è fornita con una particolare versione di Node.js?

Node.js fornisce un modo semplice per elencare tutte le dipendenze e le rispettive versioni fornite con uno specifico binario tramite l'oggetto globale process. Nel caso del motore V8, digita quanto segue nel tuo terminale per recuperare la sua versione:

sh
node -p process.versions.v8