JavaScript em 2025: principais novidades e mudanças

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

JavaScript em 2025: o que há de novo?



O ecossistema JavaScript continua a evoluir rapidamente. O ano de 2025 trouxe aos desenvolvedores atualizações tão esperadas e novos recursos que tornam a linguagem ainda mais poderosa e conveniente. Neste artigo, analisaremos as principais inovações que já estão disponíveis ou surgirão em breve, com foco na aplicação prática no ambiente Node.js.



1. Temporal API: uma nova era para trabalhar com datas



Uma das inovações mais significativas de 2025 foi a Temporal API — uma substituição moderna para o obsoleto objeto Date. O Temporal resolve problemas antigos com mutabilidade, fusos horários e análise de datas.



Principais recursos do Temporal:

  • Imutabilidade — todas as operações retornam um novo objeto.
  • Suporte a fusos horários e calendários (incluindo não gregorianos).
  • Precisão de nanossegundos.
  • Métodos convenientes para comparação, formatação e cálculos.


Exemplo de uso no Node.js:

// Criando a data e hora atuais em UTCconst now = Temporal.Now.instant();console.log(now.toString()); // "2025-06-10T12:30:00.123456789Z"

// Trabalhando com data sem horaconst date = Temporal.PlainDate.from("2025-12-25");console.log(date.dayOfWeek); // 4 (quinta-feira)

// Adicionando mesesconst futureDate = date.add({ months: 3 });console.log(futureDate.toString()); // "2026-03-25"

// Diferença entre datasconst start = Temporal.PlainDate.from("2025-01-01");const end = Temporal.PlainDate.from("2025-12-31");const duration = start.until(end);console.log(duration.total("days")); // 364


2. Decoradores (Estágio 3 → Estágio 4)



Após anos de discussão, os decoradores finalmente atingiram o estágio final de adoção no ECMAScript. Em 2025, eles se tornam uma parte completa da linguagem, o que é especialmente importante para frameworks (NestJS, Angular) e bibliotecas.



Os decoradores permitem adicionar metadados e alterar o comportamento de classes, métodos e propriedades sem modificar seu código.



Exemplo com Node.js e sintaxe semelhante ao TypeScript (já suportada em modo experimental):

// Decorador para registrar a chamada de métodofunction log(target, context) {    const methodName = context.name;    const originalMethod = target;

return function (...args) { console.log(`[LOG] Chamada de ${methodName} com argumentos:`, args); const result = originalMethod.apply(this, args); console.log(`[LOG] Resultado de ${methodName}:`, result); return result; };}

class Calculator { @log add(a, b) { return a + b; }}

const calc = new Calculator();calc.add(5, 7);// [LOG] Chamada de add com argumentos: [5, 7]// [LOG] Resultado de add: 12


3. Pattern Matching — fase experimental



Em 2025, o pattern matching está sendo ativamente discutido e implementado em modo experimental — uma construção poderosa, familiar para desenvolvedores em Rust, Haskell ou Scala. Ele permite lidar elegantemente com condições complexas.



Sintaxe da proposta (ainda pode mudar):

// Exemplo de pattern matching para processar status HTTPfunction handleResponse(status) {    match (status) {        when (200) -> console.log("Sucesso");        when (201) -> console.log("Criado");        when (400, 401, 403) -> console.log("Erro do cliente");        when (500..599) -> console.log("Erro do servidor");        default -> console.log("Status desconhecido");    }}

// Desestruturação de objetosfunction processUser(user) { match (user) { when ({ role: "admin", permissions: { write: true } }) -> console.log("Admin com permissão de escrita"); when ({ role: "user", age: < 18 }) -> console.log("Menor de idade"); }}

Blogs

Book Recommendations