Lección 07: Conversión de Tipos
🧠 Concepto
Section titled “🧠 Concepto”En JavaScript podemos convertir un valor de un tipo a otro. Hay dos formas: conversión explícita (nosotros la hacemos intencionalmente) y conversión implícita o coerción (JavaScript la hace automáticamente).
Conversión explícita (type casting)
Section titled “Conversión explícita (type casting)”Usamos funciones constructoras para convertir tipos.
A string:
String(123); // "123"String(true); // "true"String(null); // "null"String(undefined); // "undefined"A number:
Number('123'); // 123Number('12.5'); // 12.5Number('Hola'); // NaN (Not a Number)Number(true); // 1Number(false); // 0Number(null); // 0Number(undefined); // NaN
parseInt('123'); // 123 (entero)parseInt('12.9'); // 12 (trunca decimales)parseFloat('12.5'); // 12.5 (decimal)parseInt('123px'); // 123 (ignora el 'px')parseInt(' 42 '); // 42 (ignora espacios)A booleano:
Boolean(1); // trueBoolean(0); // falseBoolean('Hola'); // trueBoolean(''); // falseBoolean(null); // falseBoolean(undefined); // falseCoerción implícita (conversión automática)
Section titled “Coerción implícita (conversión automática)”JavaScript convierte tipos automáticamente en ciertas operaciones.
console.log('5' - 2); // 3 (string '5' se convierte a número)console.log('5' + 2); // "52" (número 2 se convierte a string)console.log('5' * '2'); // 10 (ambos strings se convierten a números)console.log('5' == 5); // true (coerción con ==)console.log('5' === 5); // false (sin coerción)Por qué NaN no es igual a NaN
Section titled “Por qué NaN no es igual a NaN”console.log(NaN === NaN); // falseNaN es el único valor en JavaScript que no es igual a sí mismo.
💻 Ejemplo
Section titled “💻 Ejemplo”// Conversión explícitaconsole.log(Number('3.14')); // 3.14console.log(String(100)); // "100"console.log(Boolean(0)); // false
// Conversión con parseInt/parseFloatconsole.log(parseInt('100px')); // 100console.log(parseFloat('3.14')); // 3.14
// Coerción implícita — ¡cuidado!console.log('10' - 5); // 5console.log('10' + 5); // "105" ← ¡trampa!console.log('10' * 2); // 20console.log('10' / 2); // 5
// NaNconsole.log(Number('no soy número')); // NaNconsole.log(isNaN('Hola')); // true📝 Ejercicio
Section titled “📝 Ejercicio”- Crea un archivo
conversion-tipos.js. - Declara una variable
strNumero = '42'. - Conviértela a número con
Number()e imprime el resultado y su tipo. - Convierte el número 123 a string y muéstralo.
- Convierte 1 y 0 a booleanos y muéstralos.
- Prueba estas expresiones y adivina el resultado antes de ejecutar:
'8' + 3'8' - 3'8' * '3''Hola' + 5
let strNumero = '42';let num = Number(strNumero);console.log('Valor:', num, '- Tipo:', typeof num);
let numAString = String(123);console.log('Valor:', numAString, '- Tipo:', typeof numAString);
console.log(Boolean(1)); // trueconsole.log(Boolean(0)); // false⚠️ Nota
Section titled “⚠️ Nota”El operador + es especial: si alguno de los operandos es un string, hace concatenación, no suma. Los otros operadores aritméticos (-, *, /) siempre convierten a número. Esta es la fuente más común de errores en JavaScript.
Usa Number.isNaN(valor) para comprobar si un valor es NaN. isNaN() global también funciona pero primero convierte el valor, lo que puede dar resultados engañosos:
isNaN('Hola'); // true (convierte 'Hola' a NaN)Number.isNaN('Hola'); // false (no convierte, 'Hola' no es NaN)