6 pontos por GN⁺ 2025-06-30 | 1 comentários | Compartilhar no WhatsApp
  • ECMAScript 2025 foi aprovado como padrão oficial em 25 de junho de 2025, adicionando vários novos recursos
  • Import attributes e módulos JSON melhoram a forma de importar recursos que não são JavaScript
  • Iterator helper methods aumentam a eficiência no processamento de grandes volumes de dados e em várias tarefas de iteração
  • Um grande conjunto de novos métodos foi adicionado a objetos embutidos importantes, como Set e RegExp, reforçando a usabilidade
  • Suporte a ponto flutuante de 16 bits (float16), entre outros, amplia o desempenho e a expressividade no processamento de dados

Aprovação oficial do ECMAScript 2025

  • Em 25 de junho de 2025, na 129ª assembleia geral da Ecma International, o ECMAScript 2025 foi aprovado como padrão oficial

Principais novos recursos

Import attributes e módulos JSON

  • Import attributes é uma sintaxe que permite especificar atributos como tipo para artefatos não JavaScript (recursos importados)
  • Módulos JSON passam a ter suporte oficial pela primeira vez, permitindo carregar dados JSON facilmente no formato import configData from './data.json' with { type: 'json' };
  • Também é possível especificar os mesmos atributos em imports dinâmicos (chamadas import())

Iterator helper methods

  • Foram introduzidos vários métodos auxiliares semelhantes aos de Array, mas especializados para iterators
    • métodos já conhecidos como filter, map, flatMap, some, every, find, reduce, forEach
    • incluindo novos métodos exclusivos para iteradores, como drop, take e toArray
  • Podem ser usados diretamente com todos os objetos iteráveis, como Set e Map
  • Como processam os dados sequencialmente apenas na medida necessária, sem criar arrays intermediários, são eficazes para grandes volumes de dados

Expansão dos métodos de Set

  • Foram adicionados métodos para operações de união, interseção, diferença e diferença simétrica (symmetric difference)
    • Set.prototype.union(other), intersection(other), difference(other), symmetricDifference(other)
  • Também são fornecidos métodos para verificar subconjunto/superconjunto/disjunção
    • isSubsetOf(other), isSupersetOf(other), isDisjointFrom(other)

Melhorias em expressões regulares

RegExp.escape()

  • Foi introduzido RegExp.escape(), que escapa automaticamente uma string arbitrária para que possa ser usada com segurança em expressões regulares

Flags inline no padrão (Inline flags)

  • Agora é possível aplicar flags individuais (i, u etc.) apenas a partes específicas do padrão dentro da expressão regular
    • Exemplo: /^x(?i:HELLO)x$/ faz correspondência sem diferenciar maiúsculas e minúsculas apenas na parte HELLO

Suporte a grupos de captura com nomes duplicados

  • Passa a ser possível usar grupos de captura com o mesmo nome em cada alternativa (branch) de uma expressão regular
    • Exemplo: /(?<chars>a+)|(?<chars>b+)/v

Promise.try()

  • Foi introduzido Promise.try(), que permite iniciar o tratamento misto de código síncrono/assíncrono em uma única cadeia de Promise
    • Antes, o tratamento de exceções síncronas era trabalhoso; agora isso pode ser feito de forma mais simples

Suporte a ponto flutuante de 16 bits (float16)

  • Math.f16round() permite fazer arredondamento em ponto flutuante de 16 bits
  • O tipo Float16Array foi adicionado ao TypedArray
  • Os métodos getFloat16() e setFloat16() foram introduzidos em DataView

Materiais de referência e livro gratuito

  • O livro online gratuito “Exploring JavaScript (ES2025 Edition)” está disponível
    • Explica em detalhes a história e a evolução do JavaScript, além dos novos recursos do ECMAScript
    • Também traz exemplos práticos de uso e explicações para cada uma das principais novidades

1 comentários

 
smboy86 2025-06-30

No projeto anterior, eu não entendia por que o carregamento de JSON não funcionava
Então era porque originalmente não tinha suporte para isso.. caramba