Conversión de tipos de JavaScript
- Convertir cadenas en números
- Convertir números en cadenas
- Convertir fechas a números
- Convertir números a fechas
- Conversión de booleanos a números
- Conversión de números a booleanos
Conversión de tipos de JavaScript
Las variables de JavaScript se pueden convertir a 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 en números
El método global Number()
puede convertir cadenas en números.
Las cadenas que contienen números (como "3.14") se convierten en números (como 3.14).
Las cadenas vacías se convierten en 0.
Cualquier otra cosa se convierte en NaN
(No es un número).
Number("3.14") // returns 3.14
Number(" ") // returns 0
Number("") // returns 0
Number("99 88") // returns NaN
Métodos numéricos
En el capítulo Métodos numéricos , encontrará más métodos que se pueden usar para convertir cadenas en números:
Method | Description |
---|---|
Number() | Returns a number, converted from its argument |
parseFloat() | Parses a string and returns a floating point number |
parseInt() | Parses a string and returns an integer |
El operador unario +
El operador unario + se puede utilizar para convertir una variable en un número:
Ejemplo
let y = "5";
// y is a string
let x = + y;
// x is a number
Si la variable no se puede convertir, aún se convertirá en un número, pero con el valor NaN
(No es un número):
Ejemplo
let y = "John";
// y is a string
let x = + y; // x is a number (NaN)
Convertir números en cadenas
El método global String()
puede convertir números en cadenas.
Se puede usar en cualquier tipo de números, literales, variables o expresiones:
Ejemplo
String(x) // returns a string from a number variable x
String(123) // returns a string from a number literal 123
String(100 + 23) // returns a string from a number from an expression
El método Number toString()
hace lo mismo.
Ejemplo
x.toString()
(123).toString()
(100 + 23).toString()
Más métodos
En el capítulo Métodos numéricos , encontrará más métodos que se pueden usar para convertir números en cadenas:
Method | Description |
---|---|
toExponential() | Returns a string, with a number rounded and written using exponential notation. |
toFixed() | Returns a string, with a number rounded and written with a specified number of decimals. |
toPrecision() | Returns a string, with a number written with a specified length |
Convertir fechas a números
El método global Number()
se puede utilizar para convertir fechas en números.
d = new Date();
Number(d) // returns 1404568027739
El método de fecha getTime()
hace lo mismo.
d = new Date();
d.getTime() // returns 1404568027739
Conversión de fechas en cadenas
El método global String()
puede convertir fechas en cadenas.
String(Date()) // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
El método Date toString()
hace lo mismo.
Ejemplo
Date().toString() // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
En el capítulo Métodos de fecha , encontrará más métodos que se pueden usar para convertir fechas en cadenas:
Method | Description |
---|---|
getDate() | Get the day as a number (1-31) |
getDay() | Get the weekday a number (0-6) |
getFullYear() | Get the four digit year (yyyy) |
getHours() | Get the hour (0-23) |
getMilliseconds() | Get the milliseconds (0-999) |
getMinutes() | Get the minutes (0-59) |
getMonth() | Get the month (0-11) |
getSeconds() | Get the seconds (0-59) |
getTime() | Get the time (milliseconds since January 1, 1970) |
Conversión de booleanos a números
El método global Number()
también puede convertir valores booleanos en números.
Number(false) // returns 0
Number(true) // returns 1
Convertir booleanos en cadenas
El método global String()
puede convertir booleanos en cadenas.
String(false) // returns "false"
String(true) // returns "true"
El método booleano toString()
hace lo mismo.
false.toString() // returns "false"
true.toString() // returns "true"
Conversión automática de tipos
Cuando JavaScript intenta operar en un tipo de datos "incorrecto", intentará convertir el valor a un tipo "correcto".
El resultado no siempre es lo que esperas:
5 + null // returns 5 because null is converted to 0
"5" + null // returns "5null" because null is converted to "null"
"5" + 2 // returns
"52" because 2 is converted to "2"
"5" - 2 // returns 3 because "5" is converted to 5
"5" * "2" // returns
10 because "5" and "2" are
converted to 5 and 2
Conversión automática de cadenas
JavaScript llama automáticamente a la toString()
función de la variable cuando intenta "salir" un objeto o una variable:
document.getElementById("demo").innerHTML = myVar;
// if myVar = {name:"Fjohn"} // toString converts to "[object Object]"
// if myVar = [1,2,3,4] // toString converts to "1,2,3,4"
// if myVar = new Date() // toString converts to "Fri Jul 18 2014 09:08:55 GMT+0200"
Los números y booleanos también se convierten, pero esto no es muy visible:
// if myVar = 123 // toString converts to "123"
// if myVar = true // toString converts to "true"
// if myVar = false // toString converts to "false"
Tabla de conversión de tipos de JavaScript
Esta tabla muestra el resultado de convertir diferentes valores de JavaScript a Número, Cadena y Booleano:
Original Value |
Converted to Number |
Converted to String |
Converted to Boolean |
Try it |
---|---|---|---|---|
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 rojos indican valores (algunos) que los programadores podrían no esperar.