×

O ECMAScript 2018, também conhecido como ES9, introduziu algumas funcionalidades importantes e úteis que podem facilitar o desenvolvimento em JavaScript. Neste post, vamos explorar as principais features do ES9 e como elas podem ser aplicadas.

Rest/Spread Properties

As propriedades rest e spread permitem que você manipule objetos de maneira mais fácil e intuitiva.

Rest Properties

As propriedades rest permitem que você colete o restante das propriedades de um objeto em uma nova variável.

const { a, b, ...rest } = { a: 1, b: 2, c: 3, d: 4 };
console.log(a); // 1
console.log(b); // 2
console.log(rest); // { c: 3, d: 4 }

Spread Properties

As propriedades spread permitem que você expanda as propriedades de um objeto em outro objeto.

const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 };
console.log(obj2); // { a: 1, b: 2, c: 3 }

Asynchronous Iteration

O ES9 introduziu a capacidade de iterar sobre objetos assíncronos usando o novo loop for-await-of. Essa funcionalidade é especialmente útil ao trabalhar com operações assíncronas, como chamadas de API.

async function processArray(array) {
  for await (const item of array) {
    console.log(item);
  }
}

const promises = [Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)];
processArray(promises); // 1, 2, 3

Promise.finally()

O método .finally() se junta às promessas, permitindo que você execute um bloco de código uma vez que a promessa foi resolvida ou rejeitada.

fetch('https://api.example.com/data')
  .then(response => response.json())
  .catch(error => console.error('Error:', error))
  .finally(() => console.log('Done'));

Regular Expression Improvements

ES9 trouxe várias melhorias para expressões regulares, tornando-as mais potentes e fáceis de usar.

s (dotAll) Flag

Com a nova flag s, o ponto (.) nas regexes corresponde a qualquer caractere, incluindo novas linhas.

const regex = /foo.bar/s;
const str = 'foo\nbar';
console.log(regex.test(str)); // true

Named Capture Groups

Os named capture groups permitem que você nomeie grupos de captura nas regexes, facilitando a extração e leitura dos dados.

const regex = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/;
const str = '2023-10-05';
const groups = str.match(regex).groups;
console.log(groups.year);  // 2023
console.log(groups.month); // 10
console.log(groups.day);   // 05

Lookbehind Assertions

Com as lookbehind assertions, agora é possível fazer verificações atrás de uma determinada posição na string.

const regex = /(?<=\$)\d+/;
const str = 'Price: $42';
const match = str.match(regex);
console.log(match[0]); // 42

Conclusion

As features do ES9 trouxeram melhorias significativas para a linguagem JavaScript, tornando-a mais eficiente e poderosa. Elas facilitam a manipulação de objetos, melhorias em promessas, iteração assíncrona e trabalham de maneira mais robusta com expressões regulares. Certamente, esses novos recursos ajudam a escrever código mais limpo, expressivo e melhor estruturado.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Autor

flpchapola@hotmail.com

Posts relacionados

Substituindo ESLint e Prettier: Biome simplifica linting e formatação em um só lugar!

Substituindo ESLint e Prettier: Biome simplifica linting e formatação em um só lugar!

Nos meus novos projetos, tenho substituído o ESLint e Prettier pelo Biome. Um dos grandes destaques do Biome é que ele já...

Leia tudo
10 Dicas de CSS para Melhorar Seus Layouts e se Tornar um Desenvolvedor Melhor

10 Dicas de CSS para Melhorar Seus Layouts e se Tornar um Desenvolvedor Melhor

10 Ferramentas para Melhorar suas Habilidades como Desenvolvedor Se você está buscando formas de se tornar um desenvolvedor mais eficiente e habilidoso,...

Leia tudo
Substituindo ESLint e Prettier pelo Biome: Uma Solução Completa para Linting e Formatação de Código

Substituindo ESLint e Prettier pelo Biome: Uma Solução Completa para Linting e Formatação de Código

Nos meus novos projetos, tenho substituído o ESLint e Prettier pelo Biome. Um dos grandes destaques do Biome é que ele já...

Leia tudo
"10 Classes do Tailwind Que Você Gostaria de Ter Conhecido Antes"

“10 Classes do Tailwind Que Você Gostaria de Ter Conhecido Antes”

O Tailwind CSS é uma estrutura de CSS poderosa e flexível, ideal para projetos de front-end que requerem desenvolvimento rápido e alta...

Leia tudo
Explorando a Arquitetura e Conceitos Fundamentais do React Fiber para Otimização de Performance

Explorando a Arquitetura e Conceitos Fundamentais do React Fiber para Otimização de Performance

React Fiber é uma nova arquitetura introduzida pelo React para gerenciar o processo de renderização de forma mais eficiente. Ele visa melhorar...

Leia tudo
10 Dicas para Se Tornar um Desenvolvedor Melhor e Aumentar Suas Habilidades

10 Dicas para Se Tornar um Desenvolvedor Melhor e Aumentar Suas Habilidades

Em um mercado cada vez mais competitivo, tornar-se um desenvolvedor de alta performance é essencial para garantir relevância e sucesso. A seguir,...

Leia tudo