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:

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

Experimente você mesmo

Instância de BigInt

let x = 9999999999999999;
let y = 9999999999999999n;

Experimente você mesmo

Para criar BigInt, digite n Adicione ao final do número inteiro ou chame BigInt():

Exemplo

let x = 1234567890123456789012345n;
let y = BigInt(1234567890123456789012345);

Experimente você mesmo

O tipo JavaScript de BigInt é "bigint":

Exemplo

let x = BigInt(999999999999999);
let type = typeof x;

Experimente você mesmo

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

Experimente você mesmo

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

Experimente você mesmo

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

Experimente você mesmo

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 undefinedentão ?? o operador retorna o primeiro parâmetro.

senão retorna o segundo.

Exemplo

let name = null;
let text = "missing";
let result = name ?? text;

Experimente você mesmo

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 nullentã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;

Experimente você mesmo

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 verdadeirose a primeira valor for

Exemplo de atribuição lógica AND

let x = 100;
x &&= 5;

Experimente você mesmo

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 falsose a primeira valor for

Exemplo de atribuição lógica OR

let x = 10;
x ||= 5;

Experimente você mesmo

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 nullse a primeira valor for

Exemplo de atribuição de combinação de valores nulos

let x = 10;
x ??= 5;

Experimente você mesmo

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