Eine neue stabile Version von Node.js (0.12) wurde kürzlich mit der aktualisierten JavaScript-Engine v8 von Google, Version 3.28.73, veröffentlicht .
Welche ECMAScript 6-Funktionen sind derzeit in Node.js vorhanden, ohne das --harmony
Flag zu verwenden?
Ich habe mehrere Websites überprüft, die behaupten, die ES 6-Funktionen aufzulisten, aber alle scheinen veraltet zu sein - am prominentesten diese Tabelle ( Update: jetzt mit dem aktuellen Node.js-Status ab 0.12 aktualisiert ), da einige der Funktionen als aufgeführt sind --harmony
Ich benötige das Flag, während einige von ihnen standardmäßig aktiviert sind (Karten, Sätze, Symbole, um nur einige zu nennen). Update : Knotenspezifische Tabellen wurden inzwischen zur Verfügung gestellt
Der Versuch, diese Informationen nur für die v8-Engine zu googeln, liefert zu aktuelle Informationen. Die aktuelle Version v8 ist 4.2. * , Was der von Node.js verwendeten Version weit voraus ist.
Ich hoffe, dass diese Frage (und ihre Antworten) zu einer umfassenden Zusammenfassung der ES 6-Funktionen wird, die Node.js Entwicklern jetzt zur Verfügung stehen.
In Node.js 0.12 aktivierte ES 6-Funktionen Ich kenne derzeit:
- Maps, Sets / WeakMaps, WeakSets
- Symbole
- Object.observe
- Versprechen
- Nummer
- .isInteger
- .isSafeInteger
- .isNaN
- .EPSILON
- .MIN_SAFE_INTEGER
- .MAX_SAFE_INTEGER
- Mathematik
- .clz32
- .imul
- .Zeichen
- .log10
- .log2
- .log1p
- .expm1
- .cosh
- .sinh
- .tanh
- .acosh
- .asinh
- .atanh
- .trunc
- .fround
- .cbrt
- .hypot
quelle
Antworten:
Funktionen ohne
--harmony
Flagge:Ich denke, das ist alles, was wir ohne haben
--harmony
Flagge haben.Eigenschaften mit
--harmony
Flagge:--harmony_arrow_functions
Flag im Gegensatz zuio.js
)strict mode
String-Methoden:
includes()
in der aktuellen ES6-Spezifikation ersetzt)Proxy (hinter der
--harmony-proxies
Flagge)Ich denke, das ist alles. Vielleicht, wenn ich etwas vergessen habe - ich werde es später zur Liste hinzufügen.
quelle
--harmony
Flagge. :)--harmony
? Wie in der Back-Tick-${varname}
String-Syntax?--harmony
Flag noch ohne Flag. Aberiojs
unterstützt sie ohne Notwendigkeit irgendwelcher Fahnen.ES6-Funktionen werden in Phasen auf Node übertragen. Node verwendet Googles V8 als JavaScript-Engine. Eine in Node unterstützte Funktion bedeutet, dass sie zuerst in V8 implementiert und dann vom Node-Team in Node.js integriert werden muss.
Das Team von Google veröffentlicht ungefähr alle sechs Wochen eine neue Version von V8, und dann ist es Sache des Node-Teams, sie in Betrieb zu nehmen.
Manuell kuratierte Listen von Sprachfunktionen sind nett, können aber schnell veraltet sein. Knoten 0.12 ist nicht mehr im Fluss, aber normalerweise wird eine manuell kuratierte Liste veraltet, sobald eine neue Version von Knoten eingeführt wird.
Hier sind zwei alternative Möglichkeiten, um zu überprüfen, welche Funktionen eine Node-Version unterstützt, ohne sich auf eine statische Liste zu verlassen. Weitere Informationen und ausführlichere Beispiele für deren Verwendung finden Sie unter "So überprüfen Sie, ob Node.js die ES 6-Sprachfunktion unterstützt".
# 1 Easy - Kompatibilitätstabelle
Eine dynamisch generierte Liste, die sich auf kleine Tests stützt, um das Vorhandensein einer Sprachfunktion zu bestätigen, bleibt auf dem neuesten Stand. Eine solche beliebte Liste ist kangax.github.io/compat-table/es6/. Wir sind nur an Knotenfunktionen interessiert, sodass Sie diese verwenden können
http://node.green
das nutzt die gleichen Daten wie die Kangax-Site.
# 2 Hard - Backtrack V8 Version
Node verwendet die V8-Engine. Wenn Sie also feststellen, welche Version von V8 in Node enthalten ist, erfahren Sie, welche ES6-Sprachfunktionen unterstützt werden. Sie können herausfinden, mit welcher Version von V8 in Node gebündelt wurde
node -p process.versions.v8
.Mithilfe der V8-Projektressourcen von Google können Sie dann herausfinden, welche Funktionen in den einzelnen Versionen implementiert sind. Das V8-Projekt verfügt über einen Issue-Tracker, in dem Sie ES6 + über die mit dem Harmony- Label gekennzeichneten Funktionen hinaus finden .
quelle