JavaScript Type Conversion

JavaScript Type Conversion

Contenido original de W3Schools


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")

Ver ejemplo


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étodoDescripció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

Ver ejemplo

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)

Ver ejemplo


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

Ver ejemplo

El método numérico toString() hace lo mismo.

Ejemplo:

x.toString()
(123).toString()
(100 + 23).toString()

Ver ejemplo


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étodoDescripció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étodoDescripció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

Ver ejemplo


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 originalConvertido a númeroConvertido a cadenaConvertido a boleano
false0"false"false
true1"true"true
00"0"false
11"1"true
"0"0"0"true
"000"0"000"true
"1"1"1"true
NaNNaN"NaN"false
InfinityInfinity"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
null0"null"false
undefinedNaN"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.

Did you find this article valuable?

Support Santos Romero by becoming a sponsor. Any amount is appreciated!