Conversión de tipos de JavaScript
- Página anterior JS typeof
- Página siguiente Desestructuración de JS
Number()
Conversión de número,String()
Conversión de cadena,Boolean()
Conversión de valor booleano.
Tipos de datos de JavaScript
En JavaScript hay cinco tipos de datos que pueden contener valores:
- Cadena (string)
- Número (number)
- Booleano (boolean)
- Objeto (object)
- Función (function)
Hay tres tipos de objetos:
- Objeto (Object)
- Fecha (Date)
- Arreglo (Array)
Hay dos tipos de datos que no pueden contener valores:
- null
- undefined
Operador typeof
Puede usar typeof
Operadores para determinar el tipo de datos de una variable JavaScript.
Ejemplo
typeof "Bill" // devuelve "string" typeof 3.14 // devuelve "number" typeof NaN // devuelve "number" typeof false // devuelve "boolean" typeof [1,2,3,4] // devuelve "object" typeof {name:'Bill', age:62} // devuelve "object" typeof new Date() // devuelve "object" typeof function () {} // devuelve "function" typeof myCar // devuelve "undefined" * typeof null // devuelve "object"
Nota:
- El tipo de datos de NaN es numérico
- El tipo de datos de un array es objeto
- El tipo de datos de una fecha es objeto
- El tipo de datos de null es objeto
- El tipo de datos de una variable no definida es undefined
- El tipo de datos de una variable sin asignar también es undefined
No puedes usar typeof
para determinar si un objeto JavaScript es un array (o una fecha).
los tipos de datos de typeof
typeof
El operador no es una variable. Es un operador. Los operadores (por ejemplo +
-
*
/
no hay tipo de datos).
pero,typeof
siempre lo hacedevuelve una cadenaque incluye el tipo de los operandos).
Atributo constructor
constructor
La propiedad devuelve la función constructor de todas las variables JavaScript.
Ejemplo
"Bill".constructor // devuelve "function String() { [native code] }" (3.14).constructor // devuelve "function Number() { [native code] }" false.constructor // devuelve "function Boolean() { [native code] }" [1,2,3,4].constructor // devuelve "function Array() { [native code] }" {name:'Bill', age:62}.constructor // devuelve "function Object() { [native code] }" new Date().constructor // Devuelve "function Date() { [native code] }" function () {}.constructor // Devuelve "function Function(){ [native code] }"
Puede verificar constructor
Para determinar si un objeto es un array (contiene la palabra "Array")
Ejemplo
function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1; }
O más simple, puede verificar si el objeto es una función de array:
Ejemplo
function isArray(myArray) { return myArray.constructor === Array; }
Puede verificar constructor
Para determinar si un objeto es una fecha (contiene la palabra "Date")
Ejemplo
function isDate(myDate) { return myDate.constructor.toString().indexOf("Date") > -1; }
O más simple, puede verificar si el objeto es una función de fecha:
Ejemplo
function isDate(myDate) { return myDate.constructor === Date; }
Conversión de tipos de JavaScript
Las variables de JavaScript pueden ser convertidas en nuevas variables y en otro tipo de datos:
- Al usar la función de JavaScript
- A través de JavaScript en sí mismoAutomáticoConversión
Convertir valores numéricos a cadenas
Método global String()
Puede convertir números en cadenas.
Se puede usar para cualquier tipo de número, texto, variable o expresión:
Ejemplo
String(x) // Devuelve una cadena desde la variable numérica x String(123) // Devuelve una cadena desde el texto numérico 123 String(100 + 23) // Devuelve una cadena de un número desde la expresión
Métodos de número toString()
Del mismo modo.
Ejemplo
x.toString() (123).toString() (100 + 23).toString()
EnMétodos de númeroEn este capítulo, aprenderás más métodos que se pueden usar para convertir números en cadenas:
Método | Descripción |
---|---|
toExponential() | Devuelve una cadena, redondea el número y escribe usando el sistema de cuenta de exponentes. |
toFixed() | Devuelve una cadena, redondea el número y escribe con un número determinado de decimales. |
toPrecision() | Devuelve una cadena, escribiendo el número con la longitud especificada. |
Convertir booleanos a cadenas
Método global String()
Puede convertir booleanos a cadenas.
String(false) // devuelve "false" String(true) // devuelve "true"
Métodos de booleano toString()
Del mismo modo.
false.toString() // devuelve "false" true.toString() // devuelve "true"
Convertir una fecha a una cadena
Método global String()
Se puede convertir una fecha a una cadena.
String(Date())
Métodos de fecha toString()
Del mismo modo.
Ejemplo
Date().toString()
EnMétodos de fechaEn este capítulo, encontrará más métodos que pueden convertir fechas a cadenas:
Método | Descripción |
---|---|
getDate() | Obtener el día contado en números (1-31) |
getDay() | O la semana contada en números (0-6) |
getFullYear() | Obtener el año de cuatro dígitos (yyyy) |
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 la hora (milisegundos desde el 1 de enero de 1970) |
Convertir una cadena a un valor numérico
Método global Number()
Se puede convertir una cadena a un número.
Las cadenas que contienen números (por ejemplo, "3.14") se convierten en números (por ejemplo, 3.14).
La cadena vacía se convierte en 0。
Otras cadenas se convertirán en NaN
(No es un número,no es un número)。
Number("3.14") // devuelve 3.14 Number(" ") // devuelve 0 Number("") // devuelve 0 Number("99 88") // devuelve NaN
EnMétodos de númeroEn este capítulo, encontrará más métodos que pueden convertir cadenas a números:
Método | Descripción |
---|---|
parseFloat() | Analiza la cadena y devuelve un número de coma flotante. |
parseInt() | Analiza la cadena y devuelve un entero. |
Operador unario +
Unario +
OperadorSe puede usar para convertir variables a números:
Ejemplo
var y = "5"; // y es una cadena var x = + y; // x es un número
Si no se puede convertir la variable, aún se convertirá en un número, pero el valor será NaN
(No es un número):
Ejemplo
var y = "Bill"; // y es una cadena var x = + y; // x es un número (NaN)
Convertir booleanos en números
Método global Number()
También se puede convertir booleanos en números.
Number(false) // devuelve 0 Number(true) // devuelve 1
Convertir la fecha en un número
Método global Number()
Se puede usar para convertir la fecha en un número.
d = new Date(); Number(d)
Métodos de fecha getTime()
Del mismo modo.
d = new Date(); d.getTime()
Conversión de tipo automática
Si JavaScript intenta operar con un tipo de datos "erróneo", intentará convertir ese valor en el tipo "correcto".
Los resultados no siempre son los que esperas:
5 + null // devuelve 5 porque null se convierte en 0 "5" + null // devuelve "5null" porque null se convierte en "null" "5" + 2 // devuelve 52 porque 2 se convierte en "2" "5" - 2 // devuelve 3 porque "5" se convierte en 5 "5" * "2" // devuelve 10 porque "5" y "2" se convierten en 5 y 2
Conversión de cadena automática
JavaScript llama automáticamente a la conversión de cadena de la variable toString()
Función, cuando intenta "salir" un objeto o variable:
document.getElementById("demo").innerHTML = myVar; // Si myVar = {name:"Fjohn"} // toString se convierte en "[object Object]" // Si myVar = [1,2,3,4] // toString se convierte en "1,2,3,4" // Si myVar = new Date() // toString se convierte en ""
Los números y los booleanos también se convierten, pero no es tan evidente:
// Si myVar = 123 // toString se convierte en "123" // Si myVar = true // toString se convierte en "true" // Si myVar = false // toString se convierte en "false"
Tabla de conversión de tipos en JavaScript
La tabla a continuación enumera los resultados de la conversión de diferentes valores de JavaScript a números, cadenas y booleanos:
Valor original | Convertir a número | Convertir a cadena | Convertir a lógico | Prueba |
---|---|---|---|---|
false | 0 | "false" | false | Prueba |
true | 1 | "true" | true | Prueba |
0 | 0 | "0" | false | Prueba |
1 | 1 | "1" | true | Prueba |
"0" | 0 | "0" | true |
Prueba |
"000" | 0 | "000" | true |
Prueba |
"1" | 1 | "1" | true | Prueba |
NaN | NaN | "NaN" | false | Prueba |
Infinity | Infinity | "Infinity" | true | Prueba |
-Infinity | -Infinity | "-Infinity" | true | Prueba |
"" | 0 |
"" | false |
Prueba |
"20" | 20 | "20" | true | Prueba |
"twenty" | NaN | "twenty" | true | Prueba |
[ ] | 0 |
"" | true | Prueba |
[20] | 20 |
"20" | true | Prueba |
[10,20] | NaN | "10,20" | true | Prueba |
["twenty"] | NaN | "twenty" | true | Prueba |
["ten","twenty"] | NaN | "ten,twenty" | true | Prueba |
function(){} | NaN | "function(){}" | true | Prueba |
{ } | NaN | "[object Object]" | true | Prueba |
null | 0 |
"null" | false | Prueba |
undefined | NaN | "undefined" | false | Prueba |
Los valores entre comillas indican valores de cadena.
Valores rojosIndica valores que algunos programadores tal vez no esperen.
- Página anterior JS typeof
- Página siguiente Desestructuración de JS