ECMAScript 2018

As convenções de nomeação do JavaScript começaram com ES1, ES2, ES3, ES5 e ES6.

Mas ECMAScript 2016 e 2017 não são chamados de ES7 e ES8.

Desde 2016, novas versões são nomeadas por ano (ECMAScript 2016/2017/2018).

Novas características do ECMAScript 2018

Este capítulo introduce as novas características do ECMAScript 2018:

  • Iteração Assíncrona
  • Promise Finally
  • propriedade Rest de objetos
  • novas características do RegExp

Iteração Assíncrona JavaScript

ECMAScript 2018 adicionou iteradores assíncronos e objetos iteráveis.

Através da iteração assíncrona, podemos for/of usada em loops await palavra-chave.

Exemplo

for await () {}

Firefox e Safari são os primeiros navegadores a suportar a iteração assíncrona JavaScript:

Chrome e Firefox foram os primeiros navegadores a suportar todas as novas funcionalidades de RegExp: IE Firefox Safari Opera
Chrome 63 Edge 79 Firefox 57 Safari 11 Opera 50
Dezembro de 2017 Janeiro de 2020 Novembro de 2017 Setembro de 2017 Janeiro de 2018

Promise.finally do JavaScript

ECMAScript 2018 usa Promise.finally Concluiu a implementação completa do objeto Promise:

Exemplo

let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();

Chrome e Firefox são os primeiros a suportar Promise.finally navegadores:

Chrome e Firefox foram os primeiros navegadores a suportar todas as novas funcionalidades de RegExp: IE Firefox Safari Opera
Chrome 63 Edge 18 Firefox 58 Firefox 55 Opera 50
Dezembro de 2017 Novembro de 2018 Janeiro de 2018 Julho de 2017 Janeiro de 2018

Propriedade Rest de Objetos JavaScript

ECMAScript 2018 adicionou a propriedade Rest.

Isso nos permite quebrarmos um objeto e coletemos os restantes em um novo objeto:

Exemplo

let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }

Chrome, Firefox e Opera são os primeiros navegadores a suportar a propriedade Rest de objetos:

Chrome e Firefox foram os primeiros navegadores a suportar todas as novas funcionalidades de RegExp: IE Firefox Safari Opera
Chrome 60 Edge 79 Chrome 60 Firefox 55 Safari 11.1
Opera 47 Janeiro de 2020 Março de 2018 Julho de 2017 Março de 2018

Agosto de 2017

Novas funcionalidades de RegExp do JavaScript

  • O ECMAScript 2018 adicionou 4 novas funcionalidades de RegExp:
  • Escapamento de Atributos Unicode (\p{...})
  • Afirmações de Olhada Atrás (Lookbehind Assertions) (?<= ) e (?<! )
  • Grupos de Captura Nomeados (Named Capture Groups)

Sinal (dotAll) de Nomeação

Chrome e Firefox foram os primeiros navegadores a suportar todas as novas funcionalidades de RegExp: IE Firefox Safari Opera
Chrome 64 Edge 79 Firefox 78 Safari 12 Opera 51
Janeiro de 2018 Janeiro de 2020 Junho de 2020 Setembro de 2018 Fevereiro de 2018