Conversão de Tipos JavaScript

Number() Conversão de número,String() Conversão de string,Boolean() Conversão de valor booleano.

Tipos de Dados do JavaScript

Existem cinco tipos de dados que podem conter valores em JavaScript:

  • Cadeia (string)
  • Número (number)
  • Booleano (boolean)
  • Objeto (object)
  • Função (function)

Existem três tipos de objetos:

  • Objeto (Object)
  • Data (Date)
  • Array (Array)

Existem dois tipos de dados que não podem conter valores:

  • null
  • undefined

Operador typeof

Você pode usar typeof Operadores para determinar o tipo de dados de variáveis JavaScript.

Exemplo

typeof "Bill"                 // Returns "string"
typeof 3.14                   // Returns "number"
typeof NaN                    // Returns "number"
typeof false                  // retorna "boolean"
typeof [1,2,3,4]              // retorna "object"
typeof {name:'Bill', age:62}  // retorna "object"
typeof new Date()             // retorna "object"
typeof function () {}         // retorna "function"
typeof myCar                  // retorna "undefined" *
typeof null                   // retorna "object"

Experimente você mesmo

Atenção:

  • O tipo de dados de NaN é numérico
  • O tipo de dados de um array é objeto
  • O tipo de dados de uma data é objeto
  • O tipo de dados de null é objeto
  • O tipo de dados de uma variável não definida é undefined
  • O tipo de dados de uma variável não atribuída também é undefined

Você não pode usar typeof para determinar se um objeto JavaScript é um array (ou data).

Os tipos de dados do typeof

typeof O operador não é uma variável. Ele pertence aos operadores. Operadores (por exemplo + - * /não há tipo de dados. )

mas,typeof sempreretorna uma stringinclusa no tipo de dados do operando).

A propriedade constructor

constructor A propriedade retorna a função construtora de todos os variáveis JavaScript.

Exemplo

"Bill".constructor                 // retorna "function String()  { [native code] }"
(3.14).constructor                 // retorna "function Number()  { [native code] }"
false.constructor                  // retorna "function Boolean() { [native code] }"
[1,2,3,4].constructor              // retorna "function Array()   { [native code] }"
{name:'Bill', age:62}.constructor  // retorna "function Object()  { [native code] }"
new Date().constructor             // Retorna "function Date()    { [native code] }"
function () {}.constructor         // Retorna "function Function(){ [native code] }"

Experimente você mesmo

Você pode verificar constructor Para determinar se um objeto é um array (contém a palavra "Array"):

Exemplo

function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;

Experimente você mesmo

Ou de forma mais simples, você pode verificar se o objeto é uma função de array:

Exemplo

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

Experimente você mesmo

Você pode verificar constructor Para determinar se um objeto é uma data (contém a palavra "Date"):

Exemplo

function isDate(myDate) {
    return myDate.constructor.toString().indexOf("Date") > -1;

Experimente você mesmo

Ou de forma mais simples, você pode verificar se o objeto é uma função de data:

Exemplo

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

Experimente você mesmo

Conversão de Tipos JavaScript

As variáveis JavaScript podem ser convertidas em novas variáveis e em outro tipo de dados:

  • Usando funções JavaScript
  • Através do JavaScript em siAutomáticaConversão

Converte valores numéricos em strings

Método global String() Converte números em strings.

Isso pode ser usado para qualquer tipo de número, texto, variável ou expressão:

Exemplo

String(x)         // Retorna uma string a partir da variável numérica x
String(123)       // Retorna uma string a partir do texto numérico 123
String(100 + 23)  // Retorna uma string a partir do número em uma expressão

Experimente você mesmo

Métodos numéricos toString() Da mesma forma.

Exemplo

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

Experimente você mesmo

EmMétodos numéricosNeste capítulo, você aprenderá mais métodos que podem ser usados para converter números em strings:

Método Descrição
toExponential() Retorna uma string, arredondando o número e escrevendo com um sistema de contagem exponencial.
toFixed() Retorna uma string, arredondando o número e escrevendo com uma quantidade de dígitos decimais específica.
toPrecision() Retorna uma string, escrevendo o número com a comprimento especificado.

Converter booleano em string

Método global String() Pode converter booleanos em strings.

String(false)        // retorna "false"
String(true)         // retorna "true"

Métodos booleanos toString() Da mesma forma.

false.toString()     // retorna "false"
true.toString()      // retorna "true"

Converter data em string

Método global String() Pode converter datas em strings.

String(Date())      

Métodos de data toString() Da mesma forma.

Exemplo

Date().toString()   

EmMétodos de dataNesta seção, você encontrará mais métodos disponíveis para converter datas em strings:

Método Descrição
getDate() Obter dia contado numericamente (1-31)
getDay() ou com contagem numérica (0-6) da semana
getFullYear() Obter ano de quatro dígitos (yyyy)
getHours() Obter hora (0-23)
getMilliseconds() Obter milissegundo (0-999)
getMinutes() Obter minuto (0-59)
getMonth() Obter mês (0-11)
getSeconds() Obter segundo (0-59)
getTime() Obter tempo (milissegundos desde 1 de janeiro de 1970)

Converter string em valor numérico

Método global Number() Pode converter strings em números.

String contendo números (por exemplo, "3.14") convertida em número (por exemplo, 3.14).

String vazia convertida em 0。

Outras strings serão convertidas em NaN(Não é um número,não é um número)。

Number("3.14")    // retorna 3.14
Number(" ")       // retorna 0
Number("")        // retorna 0
Number("99 88")   // retorna NaN

EmMétodos numéricosNesta seção, você encontrará mais métodos disponíveis para converter strings em números:

Método Descrição
parseFloat() Análise de string e retorno de número de ponto flutuante.
parseInt() Análise de string e retorno de inteiro.

Operador unário +

Unário + OperadorPode ser usado para converter variáveis em números:

Exemplo

var y = "5";      // y é uma string
var x = + y;      // x é um número

Experimente você mesmo

Se não puder converter a variável, ainda se tornará um número, mas o valor será NaN(Não é um número):

Exemplo

var y = "Bill";   // y é uma string
var x = + y;      // x é um número (NaN)

Experimente você mesmo

Converter booleano para número

Método global Number() Também pode converter booleanos para números.

Number(false)     // retorna 0
Number(true)      // retorna 1

Converter data para número

Método global Number() Pode ser usado para converter uma data para um número.

d = new Date();
Number(d)          

Métodos de data getTime() Da mesma forma.

d = new Date();
d.getTime()        

Conversão de tipo automática

Se o JavaScript tentar operar com um tipo de dados "errado", ele tentará converter esse valor para o tipo de dados "correto".

Os resultados não são sempre os que se espera:

5 + null    // retorna 5         porque null é convertido para 0
"5" + null  // retorna "5null"   porque null é convertido para "null"
"5" + 2     // retorna 52        porque 2 é convertido para "2"
"5" - 2     // retorna 3         porque "5" é convertido para 5
"5" * "2"   // retorna 10        porque "5" e "2" são convertidos para 5 e 2

Experimente você mesmo

Conversão de string automática

O JavaScript automaticamente chama a conversão de string da variável toString() Função, quando você tenta "imprimir" um objeto ou variável:

document.getElementById("demo").innerHTML = myVar;
// Se myVar = {name:"Fjohn"}  // toString converte para "[object Object]"
// Se myVar = [1,2,3,4]       // toString converte para "1,2,3,4"
// Se myVar = new Date()      // toString converte para ""

Os números e booleanos também são convertidos, mas não notavelmente:

// Se myVar = 123             // toString converte para "123"
// Se myVar = true            // toString converte para "true"
// Se myVar = false           // toString converte para "false"

Tabela de Conversão de Tipos em JavaScript

A tabela a seguir lista os resultados da conversão de diferentes valores do JavaScript para números, strings e booleanos:

Valor Original Conversão para Número Conversão para String Conversão para Lógico Experimente
falso 0 "false" falso Experimente
true 1 "true" true Experimente
0 0 "0" falso Experimente
1 1 "1" true Experimente
"0" 0 "0" true Experimente
"000" 0 "000" true Experimente
"1" 1 "1" true Experimente
NaN NaN "NaN" falso Experimente
Infinity Infinity "Infinity" true Experimente
-Infinity -Infinity "-Infinity" true Experimente
"" 0 "" falso Experimente
"20" 20 "20" true Experimente
"vinte" NaN "vinte" true Experimente
[ ] 0 "" true Experimente
[20] 20 "20" true Experimente
[10,20] NaN "10,20" true Experimente
["vinte"] NaN "vinte" true Experimente
["dez","vinte"] NaN "dez, vinte" true Experimente
function(){} NaN "function(){}" true Experimente
{ } NaN "[object Object]" true Experimente
null 0 "null" falso Experimente
undefined NaN "undefined" falso Experimente

Os valores entre aspas indicam valores de string.

Valores vermelhosIndica valores que alguns programadores talvez não desejem.