Une nouvelle version stable de Node.js (0.12) a récemment débarqué avec un moteur JavaScript v8 amélioré de Google, v3.28.73 .
Quelles fonctionnalités ECMAScript 6 sont actuellement présentes dans Node.js, sans utiliser l' --harmony
indicateur?
J'ai vérifié plusieurs sites prétendant répertorier les fonctionnalités de l'ES 6, mais ils semblent tous obsolètes - surtout, ce tableau ( mise à jour: maintenant mis à jour avec l'état actuel de Node.js à partir de 0.12 ), car plusieurs des fonctionnalités sont répertoriées comme nécessitant le --harmony
drapeau alors que j'ai trouvé que certains d'entre eux étaient activés par défaut (cartes, ensembles, symboles, pour n'en nommer que quelques-uns). Mise à jour : des tables spécifiques aux nœuds ont depuis été mises à disposition
De plus, essayer de rechercher ces informations sur Google uniquement pour le moteur v8 donne des informations trop à jour - la version actuelle de la v8 est 4.2. * , Ce qui est bien en avance sur ce que Node.js utilise.
J'espère que cette question (et ses réponses) deviendra un résumé complet des fonctionnalités d'ES 6 désormais disponibles pour les développeurs Node.js.
Fonctionnalités ES 6 activées dans Node.js 0.12 Je connais actuellement:
- Cartes, ensembles / WeakMaps, WeakSets
- Symboles
- Object.observe
- Promesses
- Nombre
- .isInteger
- .isSafeInteger
- .isNaN
- .EPSILON
- .MIN_SAFE_INTEGER
- .MAX_SAFE_INTEGER
- Math
- .clz32
- .imul
- .signe
- .log10
- .log2
- .log1p
- .expm1
- .matraque
- .sinh
- .tanh
- .acosh
- .asinh
- .atanh
- .trunc
- .fround
- .cbrt
- .hypot
la source
Réponses:
Caractéristiques sans
--harmony
drapeau:Je pense que c'est tout ce que nous avons sans
--harmony
drapeau.Caractéristiques avec
--harmony
drapeau:--harmony_arrow_functions
drapeau contrairement àio.js
)strict mode
Méthodes de chaîne:
includes()
dans la spécification ES6 actuelle)Proxy (derrière le
--harmony-proxies
drapeau)Je pense que c'est tout. Peut-être que si j'ai oublié quelque chose, je l'ajouterai plus tard à la liste.
la source
--harmony
drapeau. :)--harmony
? Comme dans la${varname}
syntaxe de la chaîne de graduation arrière ?--harmony
indicateur, ni sans lui. Mais lesiojs
prend en charge sans avoir besoin de drapeaux.Les fonctionnalités d'ES6 se répercutent sur Node par phases. Node utilise le V8 de Google comme moteur JavaScript. Une fonctionnalité prise en charge dans Node signifie qu'elle doit d'abord être implémentée dans V8, puis l'équipe Node doit l'incorporer dans Node.js.
L'équipe de Google publie une nouvelle version de V8 environ toutes les six semaines, puis c'est à l'équipe Node de la mettre en service.
Les listes de fonctionnalités de langage organisées manuellement sont intéressantes mais peuvent devenir rapidement obsolètes. Node 0.12 n'est plus celui en flux, mais la liste généralement organisée manuellement devient obsolète dès qu'une nouvelle version de Node est déployée.
Voici deux autres façons de vérifier les fonctionnalités prises en charge par une version de Node, sans compter sur une liste statique. Pour plus d'informations et des exemples plus détaillés d'utilisation de ceux-ci, vous pouvez vérifier "Comment vérifier si Node.js prend en charge la fonctionnalité de langage ES 6"
# 1 Easy - Tableau de compatibilité
Une liste générée dynamiquement qui repose sur de petits tests pour confirmer la présence d'une fonctionnalité de langue reste mieux à jour. Une de ces listes populaires est kangax.github.io/compat-table/es6/. Nous nous intéressons uniquement aux fonctionnalités de Node, vous pouvez donc utiliser
http://node.green
qui exploite les mêmes données que le site kangax.
# 2 Hard - version V8 de retour arrière
Node utilise le moteur V8, donc déterminer quelle version de V8 est incluse dans Node nous indique quelles fonctionnalités du langage ES6 sont prises en charge. Vous pouvez savoir quelle version de V8 a été fournie avec Node
node -p process.versions.v8
.Ensuite, en utilisant les ressources du projet V8 de Google, vous pouvez trouver les fonctionnalités mises en œuvre dans chaque version. Le projet V8 conserve un suivi des problèmes où vous pouvez trouver ES6 + au-delà des fonctionnalités marquées de l' étiquette d' harmonie .
la source