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 |