ECMAScript 2020
Número da versão do JavaScript
Versões antigas do JS são nomeadas por número: ES5 (2009) e ES6 (2015).
Desde 2016, as versões são nomeadas por ano: ECMAScript 2016, 2017, 2018, 2019, ...
Novas características do ES2020:
- BigInt
- Método de string matchAll()
- Operador de valor nulo (??)
- Operador de encadeamento opcional (?.)
- Operador de atribuição lógica AND (&&=)
- Operador de atribuição lógica OR (||=)
- Operador de atribuição de valor nulo (??=)
- Promise.allSettled()
- Importação dinâmica
Aviso
Essas características são relativamente novas.
Navegadores mais antigos podem precisar de código alternativo (Polyfill).
BigInt do JavaScript
A variável BigInt do JavaScript é usada para armazenar valores de números inteiros muito grandes que não podem ser representados por números JavaScript normais.
O número inteiro JavaScript pode precisar apenas de até 15 dígitos.
Instância de Integer
let x = 999999999999999; let y = 9999999999999999; // Muito grande
Instância de BigInt
let x = 9999999999999999; let y = 9999999999999999n;
Para criar BigInt, digite n
Adicione ao final do número inteiro ou chame BigInt():
Exemplo
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
O tipo JavaScript de BigInt é "bigint":
Exemplo
let x = BigInt(999999999999999); let type = typeof x;
Desde setembro de 2020, todos os navegadores modernos suportam BigInt:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
maio de 2018 | janeiro de 2020 | julho de 2019 | Setembro de 2020 | junho de 2018 |
Método matchAll() de String em JavaScript
Antes do ES2020, não havia métodos de string disponíveis para procurar todas as ocorrências de uma string.
Exemplo
const iterator = text.matchAll("Cats");
Se o parâmetro for uma expressão regular, você deve definir o sinal de global (g
) ou será lançado um TypeError.
Exemplo
const iterator = text.matchAll(/Cats/g);
Se você quiser realizar uma pesquisa sem distinção entre maiúsculas e minúsculas, você deve definir o sinal de não distinção de maiúsculas e minúsculas (i
):
Exemplo
const iterator = text.matchAll(/Cats/gi);
Dica:ES2021 introduziu o método de string replaceAll().
Operador de combinação de nulos (Operador de Combinação de Nulos) (?? operador)
se o primeiro parâmetro não for um valor nulo (null
ou undefined
então ??
o operador retorna o primeiro parâmetro.
senão retorna o segundo.
Exemplo
let name = null; let text = "missing"; let result = name ?? text;
Desde março de 2020, todos os navegadores modernos suportam o operador nullish:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
fevereiro de 2020 | fevereiro de 2020 | janeiro de 2020 | Março de 2020 | Março de 2020 |
Operador de encadeamento opcional (Operador de Encadeamento Opcional) (?. operador)
se o objeto for undefined
ou null
entãoOperador de encadeamento opcionalretorna undefined
(ao invés de lançar um erro).
Exemplo
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
Desde março de 2020, todos os navegadores modernos suportam ?.=
Operador:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
fevereiro de 2020 | fevereiro de 2020 | Março de 2020 | Março de 2020 | Março de 2020 |
Operador de atribuição lógica AND (operador &&=)
Operador de atribuição lógica ANDusado entre dois valores.
se o primeiro valor for verdadeiro
se a primeira valor for
Exemplo de atribuição lógica AND
let x = 100; x &&= 5;
Todos os navegadores modernos suportam desde setembro de 2020 &&=
Operador:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Agosto de 2020 | Agosto de 2020 | Março de 2020 | Setembro de 2020 | Setembro de 2020 |
Operador de atribuição lógica OR (||= operador)
Operador de atribuição lógica ORusado entre dois valores.
se o primeiro valor for falso
se a primeira valor for
Exemplo de atribuição lógica OR
let x = 10; x ||= 5;
Todos os navegadores modernos suportam desde setembro de 2020 ||=
Operador:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Agosto de 2020 | Agosto de 2020 | Março de 2020 | Setembro de 2020 | Setembro de 2020 |
Operador de combinação de valores nulos (operador ??=)
Operador de combinação de valores nulos(Nullish Coalescing Assignment Operator)é usado entre dois valores.
se o primeiro valor undefined
ou null
se a primeira valor for
Exemplo de atribuição de combinação de valores nulos
let x = 10; x ??= 5;
Todos os navegadores modernos suportam desde setembro de 2020 ??=
Operador:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Agosto de 2020 | Agosto de 2020 | Março de 2020 | Setembro de 2020 | Setembro de 2020 |