ECMAScript 2015 (ES6) und darüber hinaus
Node.js basiert auf modernen Versionen von V8. Indem wir mit den neuesten Versionen dieser Engine Schritt halten, stellen wir sicher, dass neue Funktionen der JavaScript ECMA-262-Spezifikation den Node.js-Entwicklern zeitnah zur Verfügung gestellt werden, sowie kontinuierliche Leistungs- und Stabilitätsverbesserungen.
Alle ECMAScript 2015 (ES6) Funktionen sind in drei Gruppen für shipping
, staged
und in progress
Funktionen aufgeteilt:
- Alle
shipping
Funktionen, die V8 als stabil betrachtet, sindstandardmäßig in Node.js aktiviert
und benötigenKEINE
Art von Laufzeit-Flag. Staged
Funktionen, die fast abgeschlossene Funktionen sind, die vom V8-Team nicht als stabil angesehen werden, benötigen ein Laufzeit-Flag:--harmony
.In progress
Funktionen können einzeln durch ihr jeweiliges Harmony-Flag aktiviert werden, dies wird jedoch, außer zu Testzwecken, dringend abgeraten. Hinweis: Diese Flags werden von V8 bereitgestellt und können sich ohne Vorankündigung ändern.
Welche Funktionen werden standardmäßig mit welcher Node.js-Version ausgeliefert?
Die Website node.green bietet einen hervorragenden Überblick über unterstützte ECMAScript-Funktionen in verschiedenen Versionen von Node.js, basierend auf der Kompatibilitätstabelle von kangax.
Welche Funktionen sind in Bearbeitung?
Der V8-Engine werden ständig neue Funktionen hinzugefügt. Im Allgemeinen kann man davon ausgehen, dass diese in einer zukünftigen Node.js-Version verfügbar sein werden, der Zeitpunkt ist jedoch unbekannt.
Sie können alle in Bearbeitung befindlichen Funktionen auflisten, die in jeder Node.js-Version verfügbar sind, indem Sie das Argument --v8-options
durchsuchen. Bitte beachten Sie, dass dies unvollständige und möglicherweise fehlerhafte Funktionen von V8 sind, verwenden Sie diese also auf eigene Gefahr:
node --v8-options | grep "in progress"
Ich habe meine Infrastruktur so eingerichtet, dass das --harmony-Flag verwendet wird. Soll ich es entfernen?
Das aktuelle Verhalten des --harmony
-Flags in Node.js ist, nur staged
-Funktionen zu aktivieren. Schließlich ist es jetzt ein Synonym für --es_staging
. Wie oben erwähnt, sind dies abgeschlossene Funktionen, die noch nicht als stabil angesehen wurden. Wenn Sie auf Nummer sicher gehen möchten, insbesondere in Produktionsumgebungen, sollten Sie dieses Laufzeit-Flag entfernen, bis es standardmäßig in V8 und folglich in Node.js ausgeliefert wird. Wenn Sie es aktiviert lassen, sollten Sie darauf vorbereitet sein, dass zukünftige Node.js-Upgrades Ihren Code unterbrechen, wenn V8 seine Semantik ändert, um dem Standard besser zu entsprechen.
Wie finde ich heraus, welche Version von V8 mit einer bestimmten Version von Node.js ausgeliefert wird?
Node.js bietet eine einfache Möglichkeit, alle Abhängigkeiten und die jeweiligen Versionen aufzulisten, die mit einer bestimmten Binärdatei ausgeliefert werden, über das globale process
-Objekt. Im Fall der V8-Engine geben Sie Folgendes in Ihr Terminal ein, um ihre Version abzurufen:
node -p process.versions.v8