Home > Artigos > Principais Recursos Lançados com o ECMA2019 - ES10

06-10-2023

Principais Recursos Lançados com o ECMA2019 - ES10

Principais, Recursos, ECMA2019, ES10


À semelhança dos últimos ECMAS da saga destes artigos, este ECMAScript também se concentrou em melhorias de desempenho e correções de bugs em vez de introduzir grandes recursos ou alterações na linguagem.


O ECMAScript 10 (ES10)

 

1. Array.prototype.flat() e Array.prototype.flatMap():

O ES10 adicionou os métodos flat() e flatMap() à classe Array.prototype e fornecem uma maneira mais fácil de manipular arrays multidimensionais. Vamos analisar cada um deles:

 

Array.prototype.flat()

 - O método flat() cria um novo array unidimensional, removendo qualquer aninhamento de arrays dentro do array original;

-  O método flat() não altera o array original, mas retorna um novo array resultante da operação;

-  Opcionalmente, o método flat() aceita um argumento depth que especifica a profundidade máxima de aninhamento que deve ser achatado. O valor padrão é 1. Se o depth não for fornecido ou for igual a 1, o método flat() removerá apenas um nível de aninhamento.

 

Exemplo:

const arr = [1, 2, [3, 4, [5, 6]]];
const flattened = arr.flat();
console.log(flattened); // Output: [1, 2, 3, 4, [5, 6]]

Explicação:

Neste exemplo, temos um array “arr” com dois níveis de aninhamento. Ao chamar o método flat() sem fornecer um valor para depth, o método achatou o array para um único nível, removendo o primeiro nível de aninhamento interno. O resultado é um novo array “flattened” com os elementos [1, 2, 3, 4, [5, 6]].

 

Array.prototype.flatMap()

 - O método flatMap() combina as funcionalidades de map() e flat() em um único método. Ele mapeia cada elemento do array original para um novo valor através de uma função de callback e, em seguida, achata o resultado em um novo array;

-  Assim como o map() já antigo no javascript, o método flatMap() também aceita um argumento thisArg opcional para definir o valor do this dentro da função de callback.

 

Exemplo:

const arr = [1, 2, 3, 4];
const mappedAndFlattened = arr.flatMap(x => [x, x * 2]);
console.log(mappedAndFlattened); // Output: [1, 2, 2, 4, 3, 6, 4, 8]

Explicação:

Neste exemplo, temos um array “arr” com os elementos [1, 2, 3, 4]. Ao chamar o método flatMap() com uma função de callback é retornado um novo array [x, x * 2] para cada elemento x, o método mapeia cada elemento do array original para um novo array e, em seguida, achata o resultado em um único nível. O resultado é um novo array “mappedAndFlattened” com os elementos [1, 2, 2, 4, 3, 6, 4, 8].

 

 

2. Catch sem parâmetro:

Com o ES10 passou a ser permitido usar o “catch” sem especificar um parâmetro que permite apanhar a exceção original:

 

Exemplo:

try {
  // código que pudesse originar uma exceção
} catch {
  console.error("Ocorreu um erro.");
}

Explicação:

A instrução catch sem parâmetro de entrada, permite apanhar uma exceção do código dentro do bloco try, e que até aqui era necessário obrigatoriamente especificar um parâmetro no catch para se poder apanhar a respectiva exceção, mesmo que não a utilizássemos. Esta alteração permitiu que  o código ficasse mais limpo, simplificando assim a manipulação de exceções em JavaScript.

 

 

3. Object.fromEntries():

Este método transforma um array iterável (como um array de pares chave-valor) num objeto javascript.

 

Exemplo:

const keyValuePairs = [['a', 1], ['b', 2], ['c', 3]];
const obj = Object.fromEntries(keyValuePairs);
console.log(obj); // { a: 1, b: 2, c: 3 }

//Antes para termos o mesmo resultado teríamos de fazer qualquer coisa como:
const keyValuePairs = [['a', 1], ['b', 2], ['c', 3]];
const obj = {};
for (const [key, value] of keyValuePairs) {
  obj[key] = value;
}
console.log(obj); // { a: 1, b: 2, c: 3 }

Explicação:

Neste exemplo, a variável “keyValuePairs” é um array de pares chave-valor. O método Object.fromEntries() transforma esse array num objeto onde o primeiro elemento de cada subarray é a chave e o segundo elemento é o valor. O resultado é um objeto com as chaves e valores correspondentes aos pares dentro do array.

Isso é especialmente útil quando trabalhamos com APIs que retornam dados no formato de array de pares chave-valor facilitando assim o uso e manipulação dos dados.

 

 

4. String.prototype.trimStart() e String.prototype.trimEnd():

Os métodos trimStart() e trimEnd() foram adicionados para remover os espaços em branco do início e do fim de uma string, respectivamente.

 

Exemplo:

const text = "   Olá, Mundo!   ";
const trimmedStart = text.trimStart();
const trimmedEnd = text.trimEnd();
console.log(trimmedStart); // Output: "Olá, Mundo!   "
console.log(trimmedEnd);   // Output: "   Olá, Mundo!”

Explicação:

Estes métodos foram adicionados para padronizar a limpeza dos espaços em branco no início (à esquerda) e no fim (à direita) de uma string, proporcionando uma forma mais clara e específica de realizar este tipo de operações em comparação com o método que já existia e mais comum nas linguagens, conhecido como trim().

 

 

5. Symbol.prototype.description: 

Este método permite obter a descrição de um symbol.

 

Exemplo:

const mySymbol = Symbol("Exemplo de Symbol");
console.log(mySymbol.description); // "Exemplo de Symbol"

Explicação:

Esta propriedade veio permitir aceder à “string descritiva” associada a um objeto símbolo (Symbol). Ao recuperar a descrição de um símbolo, podemos tornar os símbolos mais informativos quando são convertidos em strings, muito útil em modo debug.

 

Ver mais artigos relacionados: aqui!
  

👉 Follow @niuGIS

RELACIONADAS


05-05-2023
ECMAScript

Contacte-nos 214 213 262

Informações