JavaScript em 2025: visão geral dos novos recursos para iniciantes
O JavaScript continua a evoluir rapidamente, e 2025 se tornou um marco importante para todos que estudam ou trabalham com esta linguagem. As inovações do ECMAScript 2025 (ES2025) e as atualizações da plataforma Node.js tornam o código mais limpo, rápido e seguro. Neste artigo, abordaremos as principais mudanças que serão úteis tanto para iniciantes quanto para desenvolvedores experientes. Você descobrirá quais novos recursos surgiram e como aplicá-los na prática.
1. Temporal API: uma nova era para trabalhar com datas e horas
Uma das inovações mais aguardadas foi a Temporal API. Anteriormente, para trabalhar com datas, usava-se o obsoleto objeto Date, que tinha vários problemas: mutabilidade, confusão com fusos horários e falta de suporte a calendários. O Temporal resolve todos esses problemas.
Agora, datas e horas se tornaram imutáveis (immutable), e o trabalho com fusos horários ficou intuitivo. Vejamos um exemplo:
// Temporal API em ação
const now = Temporal.Now.plainDateTimeISO();
console.log(now.toString()); // 2025-03-15T14:30:00
// Criando uma data com fuso horário especificado
const meeting = Temporal.ZonedDateTime.from({
timeZone: 'Europe/Moscow',
year: 2025,
month: 12,
day: 25,
hour: 10,
minute: 0
});
console.log(meeting.toLocaleString('pt-BR')); // 25/12/2025, 10:00Agora você pode comparar datas facilmente, adicionar dias ou meses sem risco de mutações:
const start = Temporal.PlainDate.from('2025-01-01');
const end = start.add({ months: 3 });
console.log(end.toString()); // 2025-04-01Para iniciantes, isso significa que não é mais necessário incluir bibliotecas como Moment.js ou date-fns — tudo está disponível nativamente.
2. Decoradores: suporte oficial no padrão
Decoradores são uma ferramenta poderosa para modificar o comportamento de classes e seus métodos. Em 2025, eles finalmente receberam status oficial no ECMAScript. Antes, só podiam ser usados através de TypeScript ou Babel; agora, em JavaScript puro.
Veja como é um decorador simples para registrar a chamada de um método:
// Decorador para logging
function log(target, context) {
const methodName = context.name;
const originalMethod = target;
return function (...args) {
console.log(`Chamada de ${methodName} com argumentos: ${JSON.stringify(args)}`);
const result = originalMethod.call(this, ...args);
console.log(`Resultado: ${result}`);
return result;
};
}
class Calculator {
@log
add(a, b) {
return a + b;
}
}
const calc = new Calculator();
calc.add(2, 3);
// Saída: Chamada de add com argumentos: [2,3]
// Saída: Resultado: 5Decoradores são especialmente úteis para autenticação, cache, validação de dados e outras tarefas transversais. Iniciantes devem lembrar o principal: um decorador é simplesmente uma função que envolve outra função, adicionando um novo comportamento a ela.
3. Métodos aprimorados de arrays e coleções
Em 2025, trabalhar com arrays ficou ainda mais conveniente. Novos métodos surgiram, simplificando a ordenação, busca e transformação de dados. Vejamos os mais úteis.
Método Array.prototype.groupBy()
Permite agrupar elementos de um array por chave. Antes, era necessário escrever loops ou usar reduce().
const users = [
{ name: 'Ana', role: 'admin' },
{ name: 'João', role: 'user' },
{ name: 'Maria', role: 'admin' },
{ name: 'Pedro', role: 'user' }
];
const grouped = users.groupBy(user => user.role);
console.log(grouped);
// {
// admin: [{ name: 'Ana', role: 'admin' }, { name: 'Maria', role: 'admin' }],
// user: [{ name: 'João', role: 'user' }, { name: 'Pedro', role: 'user' }]
// }Método Array.prototype.toSorted()
Ao contrário de