Table of contents
- Conversión de tipos
- Convertir cadenas a números
- Métodos numéricos
- El operador unario +
- Convertir números a cadenas
- Más métodos
- Convertir fechas a números
- Convertir fechas a cadenas
- Convertir booleanos a números
- Convertir booleanos a cadenas
- Conversión automática de tipos
- Conversión automática de cadenas
- Tabla de conversión de tipos JavaScript
La conversión de tipos significa la transferencia de datos de un tipo de datos a otro. JavaScript convierte automáticamente los tipos de datos.
Convertir cadenas en números
Convertir números en cadenas
Convertir fechas en números
Convertir números en fechas
Convertir booleanos a números
Convertir números a booleanos
Conversión de tipos
Las variables de JavaScript se pueden convertir en una nueva variable y otro tipo de datos:
Mediante el uso de una función de JavaScript
Automáticamente por el propio JavaScript
Convertir cadenas a números
El método global Number()
convierte una variable (o un valor) en un número.
Una cadena numérica (como "3.14"
) se convierte en un número (como 3.14
).
Una cadena vacía (como ""
) se convierte en 0
.
Una cadena no numérica (como "John"
) se convierte en NaN
(no es un número).
Ejemplo:
Estos se convertirán:
Number("3.14")
Number(Math.PI)
Number(" ")
Number("")
Estos no se convertirán:
Number("99 88")
Number("John")
Métodos numéricos
En el capítulo Number Methods, encontrará más métodos que se pueden utilizar para convertir cadenas en números:
Método | Descripción |
Number() | Devuelve un número, convertido a partir de su argumento. |
parseFloat() | Analiza una cadena y devuelve un número de punto flotante. |
parseInt() | Analiza una cadena y devuelve un número entero. |
El operador unario +
El operador unario + se puede utilizar para convertir una variable en un número:
Ejemplo:
let y = "5"; // y es una cadena
let x = + y; // x es una numero
Si la variable no se puede convertir, igualmente se convertirá en un número, pero con el valor NaN
(Not a Number):
Ejemplo:
let y = "John"; // y es una cadena
let x = + y; // x es un numero (NaN)
Convertir números a cadenas
El método global String()
puede convertir números en cadenas.
Se puede utilizar en cualquier tipo de números, literales, variables o expresiones:
Ejemplo:
String(x) // devuelve un string de un number variable x
String(123) // devuelve un string de un number literal 123
String(100 + 23) // devuelve un string de un number de una expression
El método numérico toString()
hace lo mismo.
Ejemplo:
x.toString()
(123).toString()
(100 + 23).toString()
Más métodos
En el capítulo Number Methods, encontrará más métodos que se pueden utilizar para convertir números en cadenas:
Método | Descripción |
toExponential() | Devuelve una cadena, con un número redondeado y escrito usando notación exponencial. |
toFixed() | Devuelve una cadena, con un número redondeado y escrito con un número específico de decimales. |
toPrecision() | Devuelve una cadena, con un número escrito con una longitud especificada. |
Convertir fechas a números
El método global Number()
se puede utilizar para convertir fechas en números.
d = new Date();
Number(d) // devuelve 1404568027739
El método getTime()
hace lo mismo.
d = new Date();
d.getTime() // devuelve 1404568027739
Convertir fechas a cadenas
El método global String()
puede convertir fechas en cadenas.
String(Date()) // devuelve "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
El método Date toString()
hace lo mismo.
Ejemplo:
Date().toString() // devuelve "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
En el capítulo Date Methods, encontrará más métodos que se pueden utilizar para convertir fechas en cadenas:
Método | Descripción |
getDate() | Obtén el día como un número (1-31). |
getDay() | Obtén un número para el día de la semana (0-6). |
getFullYear() | Obtén el año de cuatro dígitos (aaaa). |
getHours() | Obtén la hora (0-23). |
getMilliseconds() | Obtén los milisegundos (0-999). |
getMinutes() | Obtén los minutos (0-59). |
getMonth() | Obtén el mes (0-11). |
getSeconds() | Obtén los segundos (0-59) |
getTime() | Obtén la hora (milisegundos desde el 1 de enero de 1970). |
Convertir booleanos a números
El método global Number()
también puede convertir valores booleanos en números.
Number(false) // devuelve 0
Number(true) // devuelve 1
Convertir booleanos a cadenas
El método global String()
puede convertir valores booleanos en cadenas.
String(false) // devuelve "false"
String(true) // devuelve "true"
El método booleano toString()
hace lo mismo.
false.toString() // devuelve "false"
true.toString() // devuelve "true"
Conversión automática de tipos
Cuando JavaScript intenta operar con un tipo de datos "incorrecto", intentará convertir el valor a un tipo "correcto".
El resultado no siempre es el esperado:
Ejemplo:
5 + null // devuelve 5 porque null se convierte a 0
"5" + null // devuelve "5null" porque null se convierte a "null"
"5" + 2 // devuelve "52" porque 2 se convierte a "2"
"5" - 2 // devuelve 3 porque "5" se convierte a 5
"5" * "2" // devuelve 10 porque "5" y "2" se convierten en 5 y 2
Conversión automática de cadenas
JavaScript llama automáticamente a la función toString()
de la variable cuando intentas "generar" un objeto o una variable:
document.getElementById("demo").innerHTML = myVar;
// si myVar = {name:"Fjohn"} // toString convierte a "[object Object]"
// si myVar = [1,2,3,4] // toString convierte a "1,2,3,4"
// si myVar = new Date() // toString convierte a "Fri Jul 18 2014 09:08:55 GMT+0200"
También se convierten números y valores booleanos, pero esto no es muy visible:s
// si myVar = 123 // toString convierte a "123"
// si myVar = true // toString convierte a "true"
// si myVar = false // toString convierte a "false"
Tabla de conversión de tipos JavaScript
Esta tabla muestra el resultado de convertir diferentes valores de JavaScript a Número, Cadena y Booleano:
Valor original | Convertido a número | Convertido a cadena | Convertido a boleano |
false | 0 | "false" | false |
true | 1 | "true" | true |
0 | 0 | "0" | false |
1 | 1 | "1" | true |
"0" | 0 | "0" | true |
"000" | 0 | "000" | true |
"1" | 1 | "1" | true |
NaN | NaN | "NaN" | false |
Infinity | Infinity | "Infinity" | true |
-Infinity | -Infinity | "-Infinity" | true |
"" | 0 | "" | false |
"20" | 20 | "20" | true |
"twenty" | NaN | "twenty" | true |
[ ] | 0 | "" | true |
[20] | 20 | "20" | true |
[10,20] | NaN | "10,20" | true |
["twenty"] | NaN | "twenty" | true |
["ten","twenty"] | NaN | "ten,twenty" | true |
function(){} | NaN | "function(){}" | true |
{ } | NaN | "[object Object]" | true |
null | 0 | "null" | false |
undefined | NaN | "undefined" | false |
Los valores entre comillas indican valores de cadena.
Los valores en negrita indican valores que (algunos) programadores podrían no esperar.
W3Schools es el sitio de desarrolladores web más grande del mundo.