Explorando as Novidades do ES2023: O que Há de Novo no JavaScript?
Descubra as novidades do ES2023 e como as novas funcionalidades do JavaScript podem otimizar seu código. Métodos imutáveis, classes privadas e muito mais!

Se você trabalha com desenvolvimento web, sabe que o JavaScript está em constante evolução.
A cada ano, novas funcionalidades são adicionadas ao padrão ECMAScript (ES), tornando a linguagem mais eficiente, segura e poderosa.
No ES2023, algumas melhorias significativas foram introduzidas, focando em otimização de código, melhor manuseio de erros e novas possibilidades para manipulação de arrays e objetos.
Vamos explorar cada uma dessas novidades para entender como elas podem melhorar o seu código!
Novos Recursos do ES2023
A edição de 2023 do ECMAScript trouxe algumas mudanças interessantes. Aqui estão os principais destaques:
- Array findLast() e findLastIndex()
- Métodos de Manipulação de Array com toSorted(), toReversed(), toSpliced()
- Novos métodos para Manipulação de Strings com toWellFormed() e toSorted()
- Modificadores de Campos Privados em Classes
- Melhorias no manuseio de erros com Error Cause
1. Novos Métodos findLast() e findLastIndex()
Os métodos findLast()
e findLastIndex()
funcionam de maneira semelhante ao find()
e findIndex()
, mas em vez de percorrer o array do início ao fim, eles fazem o processo inverso, começando do último elemento.
const numeros = [10, 20, 30, 40, 50];
const ultimoMaiorQue25 = numeros.findLast(n => n > 25);
console.log(ultimoMaiorQue25); // 50
const ultimoIndiceMaiorQue25 = numeros.findLastIndex(n => n > 25);
console.log(ultimoIndiceMaiorQue25); // 4
Esses métodos são especialmente úteis quando você precisa localizar um item específico, mas quer começar pelo final da lista, otimizando a busca.
2. Novos Métodos para Arrays: toSorted(), toReversed() e toSpliced()
Até o ES2022, os métodos de ordenação (sort()
), reversão (reverse()
) e remoção (splice()
) modificavam diretamente o array original.
No ES2023, foram introduzidas versões imutáveis desses métodos.
const numeros = [5, 2, 8, 1];
// Ordenação sem modificar o array original
const ordenado = numeros.toSorted();
console.log(ordenado); // [1, 2, 5, 8]
console.log(numeros); // [5, 2, 8, 1] (inalterado)
// Reversão sem alterar o original
const reverso = numeros.toReversed();
console.log(reverso); // [1, 8, 2, 5]
// Splice imutável
const semPrimeiro = numeros.toSpliced(0, 1);
console.log(semPrimeiro); // [2, 8, 1]
Com esses métodos, evitamos mutações acidentais nos arrays originais, tornando o código mais seguro e previsível.
3. Novas Funções para Strings: toWellFormed() e toSorted()
O método toWellFormed()
garante que a string resultante seja válida no padrão Unicode, evitando caracteres malformados.
Já o toSorted()
organiza strings por ordem Unicode.
const texto = "hello";
console.log(texto.toWellFormed()); // "hello�"
const palavras = ["zebra", "maçã", "banana"];
console.log(palavras.toSorted()); // ["banana", "maçã", "zebra"]
4. Modificadores de Campos Privados em Classes
No ES2023, campos privados em classes podem ter acesso controlado por meio de #
.
Agora, métodos privados podem ser modificados sem expor sua implementação.
class Usuario {
#senha;
constructor(nome, senha) {
this.nome = nome;
this.#senha = senha;
}
autenticar(senha) {
return this.#senha === senha;
}
}
const usuario = new Usuario("João", "12345");
console.log(usuario.autenticar("12345")); // true
console.log(usuario.#senha); // Erro: campo privado
Isso melhora a segurança dos dados no código e reduz possíveis falhas de segurança.
5. Melhor Manuseio de Erros com Error Cause
Antes do ES2023, era difícil capturar a causa raiz de um erro. Agora, podemos usar cause
no objeto Error
para armazenar detalhes do erro original.
try {
throw new Error("Erro principal", {{ cause: new Error("Erro secundário") }});
}} catch (e) {{
console.log(e.message); // "Erro principal"
console.log(e.cause); // Error: "Erro secundário"
}}
Isso facilita o rastreamento da origem de falhas, especialmente em aplicações grandes.
Conclusão
As novas funcionalidades do ES2023 tornam o JavaScript mais eficiente, seguro e poderoso.
Métodos como findLast()
e toSorted()
trazem mais flexibilidade, enquanto melhorias em classes privadas e no tratamento de erros aumentam a robustez do código.
Se você quer manter seu código atualizado e otimizado, vale a pena começar a testar essas novidades agora mesmo!
🔗 Links Úteis
Gostou do conteúdo? Compartilhe com outros devs e fique ligado nas novidades do JavaScript! 😉