JavaScript ECMAScript 2018


Tabla de contenido

    Mostrar tabla de contenidos

Números de versión de JavaScript

Las versiones antiguas de JS se nombran con números: ES5 (2009) y ES6 (2015).

A partir de 2016, las versiones se nombran por año: ECMAScript 2016, 2017, 2018, 2019,...

Nuevas funciones en ECMAScript 2018

Este capítulo presenta las nuevas características de ECMAScript 2018:

  • Iteración asincrónica

  • Promesa finalmente

  • Propiedades del resto del objeto

  • Nuevas funciones de RegExp

  • Memoria compartida de JavaScript


Iteración asincrónica de JavaScript

ECMAScript 2018 agregó iteradores e iterables asincrónicos.

Con iterables asíncronos, podemos usar await palabra clave en los bucles for/of.

Ejemplo

for await () {}

La iteración asincrónica de JavaScript es compatible con todos los navegadores modernos desde enero de 2020:

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();

Promise.finally es compatible con todos los navegadores modernos desde noviembre de 2018:

Chrome 63 Edge 18 Firefox 58 Safari 11.1 Opera 50
Dec 2017 Nov 2018 Jan 2018 Mar 2018 Jan 2018


Propiedades del resto de objetos JavaScript

ECMAScript 2018 agregó propiedades de descanso.

Esto nos permite destruir un objeto y recoger los restos 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 }

Las propiedades de reposo de objetos son compatibles con todos los navegadores modernos desde enero de 2020:

Chrome 60 Edge 79 Firefox 55 Safari 11.1 Opera 47
Jul 2017 Jan 2020 Aug 2017 Mar 2018 Aug 2017

Nuevas funciones de RegExp de JavaScript

ECMAScript 2018 agregó 4 nuevas funciones RegExp:

  • Escapes de propiedad Unicode (\p{...})

  • Afirmaciones de búsqueda atrás (?<= ) y (?

  • Grupos de captura con nombre

  • Bandera s (puntotodo)

Las nuevas funciones RegExp son compatibles con todos los navegadores modernos desde junio de 2020:

Chrome 64 Edge 79 Firefox 78 Safari 12 Opera 51
Jan 2018 Jan 2020 Jun 2020 Sep 2018 Feb 2018

Hilos de JavaScript

En JavaScript, utiliza la API de Web Workers para crear hilos.

Los subprocesos de trabajo se utilizan para ejecutar código en segundo plano para que el programa principal pueda continuar con la ejecución.

Los subprocesos de trabajo se ejecutan simultáneamente con el programa principal. Ejecución simultánea de diferentes partes. de un programa puede ahorrarle tiempo.

Memoria compartida de JavaScript

La memoria compartida es una característica que permite que los subprocesos (diferentes partes de un programa) acceder y actualizar los mismos datos en la misma memoria.

En lugar de pasar datos entre subprocesos, puede pasar un objeto SharedArrayBuffer que apunta a la memoria donde se guardan los datos.

SharedArrayBuffer

Un objeto SharedArrayBuffer representa un búfer de datos binarios sin procesar de longitud fija similar al objeto ArrayBuffer.