Avatar ·

Como remover o último caractere de uma string em JavaScript? Métodos slice, substring e replace

Olá a todos! Sou iniciante em JavaScript e me deparei com este problema.

Tenho uma string, por exemplo: "Hello, world!". Preciso remover o último caractere (ponto de exclamação) para obter "Hello, world". Sei que strings em JS são imutáveis, mas é possível criar uma nova string sem o último caractere.

Tentei usar trim(), mas ele remove apenas espaços no início e no final da string. Depois encontrei o método slice(), mas não entendi completamente como usá-lo com índices negativos. Também vi exemplos na internet com substring() e replace(), mas às vezes eles se comportam de forma estranha.

Por favor, me digam qual é a maneira mais confiável e eficiente de remover o último caractere de uma string? E expliquem as diferenças entre slice(), substring() e substr() neste contexto? Desde já, obrigado!

Exemplo do meu código:

let str = "Привет!";
// Quer