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