Domina la coerción de tipos en JavaScript para evitar errores al combinar string, números y booleanos. Aquí verás, con ejemplos claros, cuándo ocurre la coerción implícita y cómo aplicar conversión explícita con Number, parseInt, parseFloat, String y Boolean para que tus operaciones sean seguras, sobre todo cuando recibes datos de formularios.
¿Qué es la coerción de tipos en JavaScript y por qué importa?
La coerción sucede cuando JavaScript convierte automáticamente un valor de un tipo a otro según el contexto. Es útil, pero puede romper el flujo si no la entiendes, en especial con entradas de usuario que llegan como string desde un formulario.
- La coerción implícita ocurre sin pedir permiso y puede sorprenderte.
- El operador + con string y número hace concatenación, no suma.
- El operador - intenta convertir el string a número para operar.
- Ejemplos con booleanos pueden devolver resultados no intuitivos si no conviertes antes.
¿Cómo funciona la coerción implícita con operadores en JavaScript?
En expresiones mixtas, JavaScript decide cómo convertir los tipos según el operador. Esto explica por qué a veces obtienes concatenación y otras una operación aritmética.
¿Qué hace el operador más con string y número?
console.log('5' + 3); // '53'
- Con un string presente, + convierte el número a string.
- Resultado: concatenación, no suma.
¿Por qué menos convierte string a número?
console.log('5' - 3); // 2
- El operador - fuerza la conversión del string a número.
- Resultado: resta aritmética correcta.
¿Cómo trata JavaScript los booleanos en operaciones numéricas?
console.log(true + 1); // 2
¿Cómo aplicar conversión explícita para evitar errores?
La conversión explícita te da control total sobre el tipo de dato. Úsala antes de operar con valores que provienen del usuario o de fuentes externas como tu carpeta source o el editor.
¿Cómo convertir string a número con Number?
const str = '42';
const num = Number(str);
console.log(typeof num, num); // 'number', 42
- Usar Number(...) convierte el string a número.
- Ya puedes sumar o restar sin sorpresas.
¿Cuándo usar parseInt y parseFloat?
const int = parseInt('42', 10);
console.log(int); // 42
const float = parseFloat('3.1415');
console.log(float); // 3.1415
- parseInt(valor, 10) convierte a entero en base 10.
- parseFloat(...) obtiene un número con decimales.
¿Cómo convertir a string y a boolean?
const texto = String(123);
console.log(texto, typeof texto); // '123', 'string'
const bool = Boolean(1);
console.log(bool); // true
¿Listo para ponerlo en práctica? Comparte tu reto: toma entradas como '5', '42' o true, conviértelas explícitamente y muestra el resultado esperado en consola. Cuéntanos tu solución en los comentarios.