support nodejs node guide green es7 es6 docs javascript node.js v8 ecmascript-6

javascript - nodejs - Características de ECMAScript 6 disponibles en Node.js 0.12



nodejs es7 support (2)

Recientemente se ha lanzado una nueva versión estable de Node.js (0.12) con un motor JavaScript v8 de Google actualizado, v3.28.73 .

¿Qué características de ECMAScript 6 están presentes actualmente en Node.js, sin usar el indicador --harmony ?

He comprobado varios sitios que dicen enumerar las características de ES 6, pero todos parecen estar desactualizados; lo más destacado es esta tabla ( Actualización: ahora actualizada con el estado actual de Node.js a partir de 0.12 ), porque varias de las características están listadas como requiriendo la bandera --harmony mientras encontré algunos de ellos habilitados por defecto (Mapas, Conjuntos, Símbolos, por nombrar algunos). Actualización : desde entonces se han puesto a disposición tablas específicas de nodo

Además, tratar de buscar en Google esta información únicamente para el motor v8 proporciona información demasiado actualizada: la versión actual de v8 es 4.2. * , Que está bastante por delante de lo que usa Node.js.

Espero que esta pregunta (y sus respuestas) se conviertan en un resumen exhaustivo de las características de ES 6 que ahora están disponibles para los desarrolladores de Node.js.

Funciones de ES 6 habilitadas en Node.js 0.12 Actualmente conozco:

  • Mapas, conjuntos / mapas débiles, conjuntos débiles
  • Los símbolos
  • Object.observe
  • Promesas
  • Número
    • .isInteger
    • .isSafeInteger
    • .isNaN
    • .EPSILON
    • .MIN_SAFE_INTEGER
    • .MAX_SAFE_INTEGER
  • Matemáticas
    • .clz32
    • .imul
    • .firmar
    • .log10
    • .log2
    • .log1p
    • .expm1
    • .aporrear
    • .sinh
    • .tanh
    • .acosh
    • .asinh
    • .atanh
    • .trunc
    • .fround
    • .cbrt
    • .hypot

Las características de ES6 se filtran hasta Nodo en fases. Node utiliza el V8 de Google como motor de JavaScript. Una característica admitida en Node significa que primero debe implementarse en V8 y luego el equipo de Node debe incorporarla en Node.js.

El equipo de Google lanza una nueva versión de V8 aproximadamente cada seis semanas, y luego depende del equipo Node ponerla en uso.

Las listas de características del lenguaje seleccionadas manualmente son agradables, pero pueden quedar desactualizadas rápidamente. El nodo 0.12 ya no está en flujo, pero por lo general, la lista curada manualmente se vuelve obsoleta tan pronto como se lanza una nueva versión del nodo.

Aquí hay dos formas alternativas de verificar qué características admite una versión Node, sin depender de una lista estática. Para leer más y obtener ejemplos más detallados sobre el uso de estos, puede consultar "Cómo verificar si Node.js admite la función de idioma ES 6"

# 1 Fácil - tabla de compatibilidad

Una lista generada dinámicamente que se basa en pequeñas pruebas para confirmar la presencia de una función de idioma se mantiene mejor actualizada. Una de estas listas populares es kangax.github.io/compat-table/es6/. Solo nos interesan las funciones de nodo, por lo que puede usar

http://node.green

que aprovecha los mismos datos que el sitio kangax.

# 2 Hard - versión V8 de retroceso

Node usa el motor V8, por lo que determinar qué versión de V8 está incluida en Node nos dice qué características del lenguaje ES6 son compatibles. Puede averiguar qué versión de V8 se incluyó en Node con el node -p process.versions.v8 .

$ node -p process.versions.v8 4.6.85.31

Luego, utilizando los recursos del proyecto V8 de Google, puede encontrar qué características se implementan en cada versión. El proyecto V8 mantiene un rastreador de problemas donde puede encontrar ES6 + más allá de las características marcadas con la etiqueta de armonía .


Características sin bandera de --harmony :

Creo que eso es todo lo que tenemos sin la bandera de la --harmony .

Características con la bandera de la --harmony :

Creo que eso es todo. Tal vez si olvidé algo, lo agregaré más tarde a la lista.