Conversión de tipos de JavaScript

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"

Prueba por ti mismo

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] }"

Prueba por ti mismo

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;
}

Prueba por ti mismo

O más simple, puede verificar si el objeto es una función de array:

Ejemplo

function isArray(myArray) {
    return myArray.constructor === Array;
}

Prueba por ti mismo

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;
}

Prueba por ti mismo

O más simple, puede verificar si el objeto es una función de fecha:

Ejemplo

function isDate(myDate) {
    return myDate.constructor === Date;
}

Prueba por ti mismo

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

Prueba por ti mismo

Métodos de número toString() Del mismo modo.

Ejemplo

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

Prueba por ti mismo

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

Prueba por ti mismo

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)

Prueba por ti mismo

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

Prueba por ti mismo

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.