Inovações do JavaScript ES2020 com exemplos simples

Apresentamos a tradução do artigo no blog de Carlos Caballero no Medium.com. Anteriormente, publicamos material desse autor sobre as funções do ES10 , publicadas em 2019.


Foto AbsolutVision com Unsplash

1. Introdução


ES2020 é uma versão do ECMAScript, relevante para 2020. Não há muitas inovações em comparação com o ES6, lançado em 2015, mas ainda existem alguns recursos úteis.

Neste artigo, os novos recursos do ES2020 são descritos usando exemplos simples de código. Você pode entendê-los rapidamente, sem explicações complicadas.

Obviamente, para entender completamente os exemplos apresentados, você precisa ter conhecimentos básicos de JavaScript.

Inovações de JavaScript no ES2020:

  • Método String.prototype.matchAll;
  • importação dinâmica ();
  • tipo BigInt;
  • método Promise.allSettled;
  • globalThis objeto
  • mecanismo para executar um loop for-in;
  • Declaração de encadeamento opcional
  • Operador de coalescência nulo.

Método String.protype.matchAll


Ao corresponder uma sequência a uma expressão regular, o método matchAll() retorna um iterador sobre todos os resultados, incluindo grupos de captura.



Importação dinâmica ()


Dynamic import() retorna uma promessa para o objeto de espaço para nome do módulo solicitado. Portanto, agora as importações podem ser atribuídas a uma variável usando a sintaxe async/await .



BigInt - números inteiros de comprimento arbitrário


BigInt é o sétimo tipo primitivo, um número inteiro de comprimento arbitrário. Variáveis ​​desse tipo agora podem consistir em 253 caracteres numéricos; elas não estão limitadas ao valor numérico 9007199254740992 .



Método Promise.allSettled


O método Promise.allSettled retorna uma promessa com uma matriz de estados de promessa, mas somente após todas as promessas originais terem sido concluídas. Dizemos que uma promessa é concluída se não estiver pendente, ou seja, é concluída ou rejeitada.



Objeto global padronizado


O objeto globalThis não foi padronizado até o advento do ES10. No código finalizado, ele teve que ser trazido para o padrão para várias plataformas por conta própria, prescrevendo algo complicado, como no exemplo abaixo.



Mecanismo de loop for-in


O padrão ECMA-262 deixa a ordem de processamento da construção for (a in b) quase completamente vaga, mas os mecanismos reais ainda tentam ser consistentes em alguns casos.

Tentativas repetidas de chegar a um acordo sobre a determinação da ordem exata do ciclo de entrada falharam. Isso se deve em parte ao fato de todos os mecanismos terem sua própria aplicação específica, que é o resultado de muito trabalho que eu não queria revisar.

Como resultado, os desenvolvedores de vários mecanismos concordaram em como a iteração das propriedades deve ocorrer na construção for (a in b) para que seu comportamento possa ser padronizado.

Operador de coalescência nulo


Normalmente, quando se refere a uma propriedade, é aconselhável fornecer um valor padrão se o resultado dessa chamada for nulo ou indefinido. Agora, uma maneira típica de expressar essa intenção em JavaScript é usar o || .



Esse método funciona bem para valores nulos ou indefinidos regulares, mas há vários valores falsos que podem fornecer resultados inesperados.

O operador Nullish Coalescing (o operador de junção com um valor indefinido) foi projetado para lidar com esses casos com mais êxito e é usado para verificar a igualdade com valores nulos (nulo ou indefinido). Se a expressão no lado esquerdo do operador ?? avaliado como indefinido ou nulo, seu lado direito é retornado como resultado.



Operador de encadeamento opcional


Ao se referir a uma propriedade localizada no fundo da estrutura da árvore, geralmente é necessário adicionar verificações quanto à existência de nós intermediários.

O operador de encadeamento opcional permite que os desenvolvedores lidem com muitos casos semelhantes sem repetir e / ou atribuir resultados intermediários a variáveis ​​temporárias.



Também é importante observar que muitas APIs retornam object ou null/undefined , e talvez você precise extrair uma propriedade do resultado apenas quando não for nula.



O operador de junção com um valor indefinido é frequentemente aplicável nos casos em que a ausência de um resultado não deve ser expressa como indefinida .



Conclusão


O JavaScript é uma linguagem viva e isso tem um efeito muito benéfico no desenvolvimento da Web. Temos assistido a seu desenvolvimento dinâmico desde o advento do ES6 em 2015, e neste artigo destacamos os recursos da versão ES2020.

Provavelmente nem todas essas inovações serão necessárias para criar seu aplicativo da web. Mas todos eles permitem que você faça sem truques engenhosos ou escrevendo muito código onde era necessário antes.

Source: https://habr.com/ru/post/pt485362/


All Articles