Number() converte a um número, String() converte em uma String, Boolean() se converte em um valor booleano.
Tipos de dados JavaScript
Em JavaScript, existem 5 tipos de dados diferentes que podem conter valores:
- string
- number
- boolean
- object
- function
Existem 3 tipos de objectos:
- Object
- Date
- Array
E 2 tipos de dados que não podem conter valores:
- null
- undefined
O typeof operador
Você pode usar o typeof operador para encontrar o tipo de dados de uma variável JavaScript.
Exemplo
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
Tente você mesmo " Favor observar:
- O tipo de dados de NaN é o número
- O tipo de dados de uma array é objeto
- O tipo de dados de uma date é objeto
- O tipo de dados null é objeto
- O tipo de dados de um undefined variável é indefinido
Você não pode usar typeof para determinar se um objeto JavaScript é um array (ou uma data).
O tipo de dados de typeof
O typeof operador não é uma variável. É um operador. Operadores ( + - * / ) não têm qualquer tipo de dados.
Mas, o typeof operador sempre retorna um string contendo o tipo do operando.
O constructor Propriedade
O constructor propriedade retorna a função de construtor de todas as variáveis de JavaScript.
Exemplo
"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] }
Tente você mesmo " Você pode verificar a propriedade construtor para descobrir se um objeto é uma Array (contém a palavra "Array" ):
Exemplo
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
Tente você mesmo " Você pode verificar a propriedade construtor para descobrir se um objeto é um Data (contém a palavra "Date" ):
Exemplo
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
Tente você mesmo " JavaScript Conversão de tipo
JavaScript variáveis pode ser convertido para uma nova variável e um outro tipo de dados:
- Através da utilização de uma função JavaScript
- Automaticamente, por si só JavaScript
Convertendo números para strings
O método global String() pode converter números para strings.
Ele pode ser usado em qualquer tipo de números, literais, variáveis, ou expressões:
Exemplo
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
Tente você mesmo " O método Número toString() faz o mesmo.
No capítulo Métodos número , você vai encontrar mais métodos que podem ser utilizados para converter números para strings:
Método | Descrição |
---|---|
toExponential() | Retorna uma cadeia, com um número arredondado e escrito usando a notação exponencial. |
toFixed() | Retorna uma cadeia, com um número arredondado e escrito com um número especificado de casas decimais. |
toPrecision() | Retorna uma cadeia, com um número escrito com um comprimento especificado |
Convertendo Booleanos para Cordas
O método global String() pode converter booleans para strings.
String(false) // returns "false"
String(true) // returns "true"
O método booleano toString() faz o mesmo.
false.toString() // returns "false"
true.toString() // returns "true"
Converter datas para Cordas
O método global String() pode converter datas para strings.
String(Date()) // returns Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
O método Data toString() faz o mesmo.
Exemplo
Date().toString() // returns Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
No capítulo métodos de data , você vai encontrar mais métodos que podem ser utilizados para converter datas para strings:
Método | Descrição |
---|---|
getDate() | Obter o dia como um número (1-31) |
getDay() | Obter o dia da semana um número (0-6) |
getFullYear() | Obter o ano com quatro dígitos (aaaa) |
getHours() | Obter a hora (0-23) |
getMilliseconds() | Obter os milissegundos (0-999) |
getMinutes() | Obter os minutos (0-59) |
getMonth() | Obter o mês (0-11) |
getSeconds() | Obter os segundos (0-59) |
getTime() | Obter o tempo (milissegundos desde 1 de Janeiro de 1970) |
Conversão de strings em números
O método global Number() pode converter seqüências para números.
Strings contendo números (como "3.14" ) converter em números (como 3,14).
cadeias vazias converter a 0.
Qualquer outra coisa que se converte em NaN (não um número).
Number("3.14") // returns 3.14
Number(" ") // returns 0
Number("") // returns 0
Number("99 88") // returns NaN
No capítulo Métodos número , você vai encontrar mais métodos que podem ser utilizados para converter seqüências para números:
Método | Descrição |
---|---|
parseFloat() | Analisa uma cadeia e retorna um número de ponto flutuante |
parseInt() | Analisa uma cadeia e retorna um inteiro |
O Unário + Operador
O unária + operador pode ser usada para converter uma variável de um número:
Se a variável não pode ser convertido, ainda irá tornar-se um número, mas com o valor NaN (Não é um número):
Convertendo Booleanos para Números
O método global Number() também pode converter booleans aos números.
Number(false) // returns 0
Number(true) // returns 1
Converter datas para Números
O método global
d = new Date();
Number(d) // returns 1404568027739
O método data getTime() faz o mesmo.
d = new Date();
d.getTime() // returns 1404568027739
Conversão automática Tipo
Quando JavaScript tenta operar em um tipo de dados "errado", ele tentará converter o valor para um tipo de "direito".
O resultado nem sempre é o que você 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
Tente você mesmo " Conversão automática de Cordas
JavaScript chama automaticamente a variável toString() função quando você tenta "output" um objeto ou uma variável:
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"
Números e booleans também são convertidos, mas isso não é muito visível:
// if myVar = 123 // toString converts to "123"
// if myVar = true // toString converts to "true"
// if myVar = false // toString converts to "false"
Tabela JavaScript Conversão de tipo
Esta tabela mostra o resultado da conversão de diferentes valores JavaScript para Number, String e Boolean:
Original Valor | Convertido para o número | Convertido para sequenciar | Convertido para booleana | Tente |
---|---|---|---|---|
false | 0 | "false" | false | Tente " |
true | 1 | "true" | true | Tente " |
0 | 0 | "0" | false | Tente " |
1 | 1 | "1" | true | Tente " |
"0" | 0 | "0" | true | Tente " |
"1" | 1 | "1" | true | Tente " |
NaN | NaN | "NaN" | false | Tente " |
Infinity | Infinity | "Infinity" | true | Tente " |
-Infinity | -Infinity | "-Infinity" | true | Tente " |
"" | 0 | "" | false | Tente " |
"20" | 20 | "20" | true | Tente " |
"twenty" | NaN | "twenty" | true | Tente " |
[ ] | 0 | "" | true | Tente " |
[20] | 20 | "20" | true | Tente " |
[10,20] | NaN | "10,20" | true | Tente " |
["twenty"] | NaN | "twenty" | true | Tente " |
["ten","twenty"] | NaN | "ten,twenty" | true | Tente " |
function(){} | NaN | "function(){}" | true | Tente " |
{ } | NaN | "[object Object]" | true | Tente " |
null | 0 | "null" | false | Tente " |
undefined | NaN | "undefined" | false | Tente " |
Valores entre aspas indicam valores de cadeia.
Valores de vermelho indicam valores (alguns) programadores não pode esperar.