Avatar ·

¿Cómo eliminar el último carácter de una string en JavaScript? (slice, substring, trim)

¡Hola a todos! Acabo de empezar a aprender JavaScript y me encontré con una tarea simple, a primera vista. Tengo una string, por ejemplo:

let str = "¡Hola, mundo!";

Necesito eliminar el último carácter (el signo de exclamación) para obtener "¡Hola, mundo". Probé varios métodos, pero ninguno funciona como esperaba.

Primero, probé str.trim(), pero solo elimina espacios al inicio y final de la string, no el último carácter. Luego escribí este código:

str = str.slice(0, -1);
console.log(str); // "¡Hola, mundo" – ¡funcionó!

Pero no entiendo del todo por qué funciona. ¿Por qué -1 significa "último carácter"? ¿Y hay otras formas de hacer lo mismo? Por ejemplo, he oído hablar de substring y substr, pero me confunde su sintaxis. Además, ¿qué pasa si la string está vacía? ¿Mi código fallará con un error? ¿O si necesito eliminar no uno, sino dos últimos caracteres?