ECMAScript 2015 (ES6) y más allá
Node.js está construido sobre versiones modernas de V8. Al mantenernos actualizados con las últimas versiones de este motor, nos aseguramos de que las nuevas características de la especificación JavaScript ECMA-262 se pongan a disposición de los desarrolladores de Node.js de manera oportuna, así como mejoras continuas en el rendimiento y la estabilidad.
Todas las características de ECMAScript 2015 (ES6) se dividen en tres grupos para características en producción
, en etapa de prueba
y en curso
:
- Todas las características
en producción
, que V8 considera estables, estánactivadas por defecto en Node.js
yNO
requieren ningún tipo de flag en tiempo de ejecución. - Las características
en etapa de prueba
, que son características casi completadas que el equipo de V8 no considera estables, requieren un flag en tiempo de ejecución:--harmony
. - Las características
en curso
se pueden activar individualmente mediante su respectivo flag de harmony, aunque esto es altamente desaconsejable, excepto para fines de prueba. Nota: estos flags son expuestos por V8 y potencialmente cambiarán sin previo aviso de obsolescencia.
¿Qué características se incluyen de forma predeterminada con cada versión de Node.js?
El sitio web node.green proporciona una excelente descripción general de las características de ECMAScript admitidas en varias versiones de Node.js, basadas en la tabla de compatibilidad de kangax.
¿Qué características están en progreso?
Constantemente se están agregando nuevas características al motor V8. En general, espere que lleguen a una futura versión de Node.js, aunque se desconoce el momento.
Puede enumerar todas las características en progreso disponibles en cada versión de Node.js buscando en el argumento --v8-options
. Tenga en cuenta que estas son características incompletas y posiblemente rotas de V8, así que úselas bajo su propio riesgo:
node --v8-options | grep "in progress"
Tengo mi infraestructura configurada para aprovechar la bandera --harmony. ¿Debería eliminarla?
El comportamiento actual de la bandera --harmony
en Node.js es habilitar solo las características staged
. Después de todo, ahora es sinónimo de --es_staging
. Como se mencionó anteriormente, estas son características completadas que aún no se han considerado estables. Si quiere ir a lo seguro, especialmente en entornos de producción, considere eliminar esta bandera de tiempo de ejecución hasta que se incluya de forma predeterminada en V8 y, en consecuencia, en Node.js. Si mantiene esto habilitado, debe estar preparado para que las futuras actualizaciones de Node.js rompan su código si V8 cambia su semántica para seguir más de cerca el estándar.
¿Cómo encuentro qué versión de V8 se incluye con una versión particular de Node.js?
Node.js proporciona una forma sencilla de listar todas las dependencias y sus respectivas versiones que se incluyen con un binario específico a través del objeto global process
. En el caso del motor V8, escribe lo siguiente en tu terminal para recuperar su versión:
node -p process.versions.v8