1.1 Conversión de tipos explícita
La conversión de tipos en JavaScript es el proceso de transformar un valor de un tipo de dato a otro. Existen dos tipos de conversión: explícita (manual) e implícita (automática). Entender estos procesos es importante para prevenir errores y crear un código predecible.
La conversión explícita, también conocida como conversión manual, se realiza con funciones y métodos incorporados de JavaScript. Es una conversión en la que el programador indica explícitamente qué tipo de dato debe ser convertido a otro tipo.
Métodos principales de conversión explícita:
1. Conversión a cadena de texto
- Método
String(value)
: convierte un valor en una cadena de texto
let num = 123;
let str = String(num);
console.log(typeof str); // "string"
value.toString()
: método del objeto que convierte un valor en una cadena de texto
let bool = true;
let str = bool.toString();
console.log(typeof str); // "string"
2. Conversión a número
Number(value)
: convierte un valor en un número
let str = "456";
let num = Number(str);
console.log(typeof num); // "number"
parseInt(value, base)
: convierte una cadena de texto en un número entero. El parámetrobase
especifica la base del sistema numérico
let str = "123";
let num = parseInt(str, 10);
console.log(typeof num); // "number"
parseFloat(value)
: convierte una cadena de texto en un número de coma flotante
let str = "123.45";
let num = parseFloat(str);
console.log(typeof num); // "number"
3. Conversión a valor booleano
Boolean(value)
: convierte un valor en booleano
let str = "";
let bool = Boolean(str);
console.log(typeof bool); // "boolean"
1.2 Conversión de tipos implícita
La conversión implícita, también conocida como automática o conversión oculta, es realizada automáticamente por JavaScript durante la ejecución de operaciones con diferentes tipos de datos. La conversión implícita puede llevar a resultados inesperados, por lo que debe ser comprendida y utilizada con precaución.
1. Conversión a cadena de texto
Al sumar cualquier objeto con una cadena de texto, JavaScript intentará convertirlo en una cadena de texto.
Ejemplo:
let result = "The number is " + 123;
console.log(result); // "The number is 123"
2. Conversión a número
Al utilizar cualquier operador aritmético (excepto +) con cadenas que contienen números.
let result = "123" - 0;
console.log(result); // 123 (número)
Cómo funciona en la práctica:
let result = "123" - 10;
console.log(result); // 113 (número)
let result2 = "123" + 10;
console.log(result2); // 12310 (cadena de texto)
3. Conversión a valor booleano
Al usar valores en contextos lógicos (operadores condicionales, bucles, etc.).
let value = "hello";
if (value) {
console.log("Value is truthy"); // Output: "Value is truthy"
}
Ejemplos de conversiones en contexto lógico:
false
,0
,""
(cadena vacía),null
,undefined
, yNaN
son considerados como valores falsos (false
)- Todos los demás valores son considerados verdaderos (
true
)
if ("") {
console.log("This won't be logged.");
} else {
console.log('"" is considered false in a boolean context.');
}
// '"" is considered false in a boolean context.'
1.3 Ejemplos de conversión implícita
Ejemplo con operaciones aritméticas:
let width = "100";
let height = "200";
let area = Number(width) * Number(height); // Conversión explícita
console.log(area); // 20000
let perimeter = (+width) + (+height); // Uso del operador más unilateral para conversión explícita
console.log(perimeter); // 300
Ejemplo con contexto lógico:
let userInput = ""; // Cadena vacía
if (!userInput) {
console.log("El usuario no ingresó datos."); // Conversión implícita de cadena de texto a valor booleano
}
Ejemplo con tipos combinados:
let value = "10";
let increment = 5;
let result = value + increment; // Conversión implícita de número a cadena de texto
console.log(result); // "105"
result = Number(value) + increment; // Conversión explícita de cadena de texto a número
console.log(result); // 15
GO TO FULL VERSION