Los últimos tutoriales de desarrollo web
 

JavaScript tipo de conversión


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.

Ejemplo

x.toString()
(123).toString()
(100 + 23).toString()
Inténtalo tú 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:

Ejemplo

var y = "5";      // y is a string
var x = + y;      // x is a number
Inténtalo tú mismo "

Si la variable no se puede convertir, todavía se convertirá en un número, pero con el valor NaN (no un número):

Ejemplo

var y = "John";   // y is a string
var x = + y;      // x is a number (NaN)
Inténtalo tú mismo "

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 Número () puede ser usado para convertir las fechas para números.

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
false0"false"false Intentalo "
true1"true"true Intentalo "
00"0"false Intentalo "
11"1"true Intentalo "
"0"0"0"true Intentalo "
"1"1"1"true Intentalo "
NaNNaN"NaN"false Intentalo "
InfinityInfinity"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 "
null0"null"false Intentalo "
undefinedNaN"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.