ECMAScript 2018
La convención de nombres de JavaScript comenzó con ES1, ES2, ES3, ES5 y ES6.
Pero ECMAScript 2016 y 2017 no se llamaron ES7 y ES8.
Desde 2016, las nuevas versiones se nombran por año (ECMAScript 2016/2017/2018).
Nuevas características en ECMAScript 2018
Este capítulo presenta las nuevas funciones de ECMAScript 2018:
- Iteración asíncrona
- Promesa finalmente
- Propiedades de descanso de objetos
- Nuevas características RegExp
Iteración asincrónica de JavaScript
ECMAScript 2018 agregó iteradores e iteradores asincrónicos.
Con iterables asincrónicos, podemos usar la await
palabra clave en for/of
bucles.
Ejemplo
for await () {}
Firefox y Safari fueron los primeros navegadores compatibles con la iteración asíncrona de JavaScript:
Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
Dec 2017 | Jan 2020 | Nov 2017 | Sep 2017 | Jan 2018 |
Promesa de JavaScript.finalmente
ECMAScript 2018 finaliza la implementación completa del objeto Promise con Promise.finally
:
Ejemplo
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();
Chrome y Firefox fueron los primeros navegadores con soporte para Promise.finally
:
Chrome 63 | Edge 18 | Firefox 58 | Safari 11.1 | Opera 50 |
Dec 2017 | Nov 2018 | Jan 2018 | Mar 2018 | Jan 2018 |
Propiedades de descanso de objetos de JavaScript
ECMAScript 2018 agregó propiedades de descanso.
Esto nos permite destruir un objeto y recolectar las sobras en un nuevo objeto:
Ejemplo
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }
Chrome, Firefox y Opera fueron los primeros navegadores con soporte para propiedades de descanso de objetos:
Chrome 60 | Edge 79 | Firefox 55 | Safari 11.1 | Opera 47 |
Jul 2017 | Jan 2020 | Aug 2017 | Mar 2018 | Aug 2017 |
Nuevas características de expresiones regulares de JavaScript
ECMAScript 2018 agregó 4 nuevas funciones RegExp:
- Escapes de propiedades Unicode (\p{...})
- Mirar detrás de las afirmaciones (?<= ) y (?<! )
- Grupos de captura con nombre
- Indicador s (dotAll)
Chrome y Firefox fueron los primeros navegadores compatibles con todas las funciones RegExp nuevas:
Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
Jan 2018 | Jan 2020 | Jun 2020 | Sep 2018 | Feb 2018 |