¿Qué nuevas características principales había en cada versión de JavaScript? ¿Qué versión debería tener como objetivo?

author
1 minute, 46 seconds Read

Así que estaba empezando un nuevo proyecto de TypeScript y me preguntaba qué versión de JavaScript / ECMA Script debería tener como objetivo. Actualmente podemos elegir entre ES5, ES2015, ES2016, ES2017 y ES2018!

Las dos cosas principales a tener en cuenta al seleccionar su versión de destino de JavaScript son:

  • Entorno de destino – ¿Navegador de escritorio? ¿Móvil? NodeJS?
  • ¿Qué características JS necesito – Clases? ¿Módulos? ¿Funciones asíncronas?

Tenemos la suerte de estar en la era del Navegador Evergreen, por lo que el soporte para las últimas características es muy bueno en la mayoría de los entornos, sin embargo, siempre hay situaciones en las que los usuarios tienen dispositivos más antiguos, o estás atascado en una versión antigua de NodeJS.

Por esta razón, mi recomendación general es apuntar a la versión más antigua que tiene las características que necesitas. Esto dará un buen equilibrio entre el amplio soporte del entorno de destino y el acceso a nuevas características impresionantes 🙂

Abajo he resumido lo que veo como las principales nuevas características liberadas en cada versión de ECMA Script. Para una lista completa, así como los detalles completos de la compatibilidad con el entorno de destino, echa un vistazo a la impresionante tabla de compatibilidad de Kangax.

ES5 (2009)

  • Esta es la versión de referencia de JS que generalmente se puede asumir que todos los tiempos de ejecución (¡excepto los realmente antiguos!) serán compatibles.

ES6 / ES2015

  • Módulos estándar – import y export
  • Promesas estandarizadas
  • Clases &Inherencia
  • Bloqueo-variables de ámbito – lety const
  • Template Literals
  • Destrucción de objetos en variables
  • Funciones generadoras
  • Estructuras de datos Map y Set
  • Internacionalización para Strings, Números y Fechas mediante Intl API

ES7 / ES2016

  • Array.includes()
  • Operador de exponente numérico (potencia de) **

ES8 / ES2017

  • Funciones asíncronas
  • Object.entries
  • Funciones de relleno de cadenas

ES9 / ES2018

  • Descanso/extensión de objetos const obj = { ...props };
  • Iteración asíncrona for await (...) {
  • Función de promesa finally()
  • Mejoras de expresiones regulares (lookbehind, grupos con nombre)

Similar Posts

Deja una respuesta

Tu dirección de correo electrónico no será publicada.