Number() convierte a un número, String() convierte a String, Boolean() se convierte en un valor booleano.
Tipos de datos de JavaScript
En JavaScript hay 5 tipos de datos diferentes que pueden contener valores:
- string
- number
- boolean
- object
- function
Hay 3 tipos de objetos:
- Object
- Date
- Array
Y 2 tipos de datos que no pueden contener valores:
- null
- undefined
El typeof Operador
Se puede utilizar el typeof operador para encontrar el tipo de datos de una variable de JavaScript.
Ejemplo
typeof "John"
// Returns string
typeof 3.14
// Returns number
typeof NaN
// Returns number
typeof false
// Returns boolean
typeof [1,2,3,4] // Returns object
typeof {name:'John', age:34}
// Returns object
typeof new Date()
// Returns object
typeof function () {} // Returns function
typeof myCar
// Returns undefined (if myCar is not declared)
typeof null
// Returns object
Inténtalo tú mismo " Tenga en cuenta:
- El tipo de datos de NaN es el número
- El tipo de datos de una array es objeto
- El tipo de datos de una date es objeto
- El tipo de datos de null es objeto
- El tipo de datos de un undefined variable es indefinido
No se puede utilizar typeof para determinar si un objeto JavaScript es un array (o una fecha).
El tipo de datos de typeof
El typeof operador no es una variable. Es un operador. Operadores ( + - * / ) no tienen ningún tipo de datos.
Sin embargo, el typeof operador siempre devuelve una cadena que contiene el tipo del operando.
El constructor la propiedad
El constructor propiedad devuelve la función constructora para todas las variables de JavaScript.
Ejemplo
"John".constructor
// Returns function String() { [native code] }
(3.14).constructor
// Returns function Number() { [native code] }
false.constructor
// Returns function Boolean() { [native code] }
[1,2,3,4].constructor
// Returns function Array() { [native code] }
{name:'John', age:34}.constructor
// Returns function Object() { [native code] }
new Date().constructor
// Returns function Date() { [native code] }
function () {}.constructor
// Returns function Function(){ [native code] }
Inténtalo tú mismo " Puede comprobar la propiedad constructor para averiguar si un objeto es una matriz (contiene la palabra "Array" ):
Ejemplo
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
Inténtalo tú mismo " Puede comprobar la propiedad constructor para averiguar si un objeto es una fecha (contiene la palabra "Date" ):
Ejemplo
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
Inténtalo tú mismo " Conversión de tipos JavaScript
JavaScript variables pueden ser convertidos a una nueva variable y otro tipo de datos:
- Mediante el uso de una función de JavaScript
- Automáticamente por sí JavaScript
La conversión de números a cadenas
El método global String() puede convertir números a cadenas.
Se puede utilizar 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
Inténtalo tú mismo " El método del Número toString() hace lo mismo.
En el capítulo Métodos numéricos , encontrará más métodos que se pueden utilizar para convertir números a cadenas:
Método | Descripción |
---|---|
toExponential() | Devuelve una cadena, con un número redondeado y escrita usando la notación exponencial. |
toFixed() | Devuelve una cadena, con un número redondeado y escrito con un número especificado de decimales. |
toPrecision() | Devuelve una cadena, con un número escrito con una longitud especificada |
La conversión de los Booleanos para Cuerdas
El método global String() puede convertir a cadenas booleanos.
String(false) // returns "false"
String(true) // returns "true"
El método de Boole toString() hace lo mismo.
false.toString() // returns "false"
true.toString() // returns "true"
Convertir fechas en Strings
El método global String() puede convertir fechas para cuerdas.
String(Date()) // returns Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
El método de la fecha 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 Fecha , encontrará más métodos que se pueden utilizar para convertir las fechas para cuerdas:
Método | Descripción |
---|---|
getDate() | Obtener el día como un número (1-31) |
getDay() | Obtener el día de la semana un número (0-6) |
getFullYear() | Obtener el año de cuatro dígitos (aaaa) |
getHours() | Obtener la hora (0-23) |
getMilliseconds() | Obtener los milisegundos (0-999) |
getMinutes() | Obtener los minutos (0-59) |
getMonth() | Obtener el mes (0-11) |
getSeconds() | Obtener los segundos (0-59) |
getTime() | Obtener el tiempo (milisegundos desde 1 de enero de 1970) |
La conversión de cadenas en números
El método global Number() puede convertir cadenas en números.
Cadenas que contienen números (como "3.14" ) se convierten en números (como 3.14).
Las cadenas vacías se convierten en 0.
Todo lo demás se convierte en NaN (no un número).
Number("3.14") // returns 3.14
Number(" ") // returns 0
Number("") // returns 0
Number("99 88") // returns NaN
En el capítulo Métodos numéricos , encontrará más métodos que se pueden utilizar para convertir cadenas en números:
Método | Descripción |
---|---|
parseFloat() | Analiza una cadena y devuelve un número de coma flotante |
parseInt() | Analiza una cadena y devuelve un entero |
El Unario + Operador
El unario + operador puede utilizar para convertir una variable de un número:
Si la variable no se puede convertir, todavía se convertirá en un número, pero con el valor NaN (no un número):
La conversión de números booleanos
El método global Number() también puede convertir a los números booleanos.
Number(false) // returns 0
Number(true) // returns 1
Convertir fechas de Números
El método global
d = new Date();
Number(d) // returns 1404568027739
El método de la fecha getTime() hace lo mismo.
d = new Date();
d.getTime() // returns 1404568027739
Conversión automática Tipo
Cuando intenta JavaScript para funcionar con un tipo de datos "malo", que tratará de convertir el valor a un tipo de "derecho".
El resultado no es siempre lo que se espera:
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
Inténtalo tú mismo " Conversión automática de cuerda
JavaScript llama automáticamente a la variable de toString() la función cuando intenta "salida" de 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 tipo JavaScript
Esta tabla muestra el resultado de la conversión de diferentes valores de JavaScript a Number, String, y Boole:
Original Valor | Convertido Al numero | Convertido Encadenar | Convertido a Boolean | Intentalo |
---|---|---|---|---|
false | 0 | "false" | false | Intentalo " |
true | 1 | "true" | true | Intentalo " |
0 | 0 | "0" | false | Intentalo " |
1 | 1 | "1" | true | Intentalo " |
"0" | 0 | "0" | true | Intentalo " |
"1" | 1 | "1" | true | Intentalo " |
NaN | NaN | "NaN" | false | Intentalo " |
Infinity | Infinity | "Infinity" | true | Intentalo " |
-Infinity | -Infinity | "-Infinity" | true | Intentalo " |
"" | 0 | "" | false | Intentalo " |
"20" | 20 | "20" | true | Intentalo " |
"twenty" | NaN | "twenty" | true | Intentalo " |
[ ] | 0 | "" | true | Intentalo " |
[20] | 20 | "20" | true | Intentalo " |
[10,20] | NaN | "10,20" | true | Intentalo " |
["twenty"] | NaN | "twenty" | true | Intentalo " |
["ten","twenty"] | NaN | "ten,twenty" | true | Intentalo " |
function(){} | NaN | "function(){}" | true | Intentalo " |
{ } | NaN | "[object Object]" | true | Intentalo " |
null | 0 | "null" | false | Intentalo " |
undefined | NaN | "undefined" | false | Intentalo " |
Los valores entre comillas indican los valores de cadena.
Los valores en rojo indican los valores de (algunos) los programadores no pueden esperar.