Conversões de tipo JavaScript (com exemplos)

Neste tutorial, você aprenderá sobre conversões de tipo em JavaScript com a ajuda de exemplos.

O processo de conversão de um tipo de dados em outro é chamado de conversão de tipo. Existem dois tipos de conversão de tipo em JavaScript.

  • Conversão implícita
  • Conversão Explícita

Conversão implícita de JavaScript

Em certas situações, o JavaScript converte automaticamente um tipo de dados em outro (para o tipo certo). Isso é conhecido como conversão implícita.

Exemplo 1: conversão implícita em string

 // numeric string used with + gives string type let result; result = '3' + 2; console.log(result) // "32" result = '3' + true; console.log(result); // "3true" result = '3' + undefined; console.log(result); // "3undefined" result = '3' + null; console.log(result); // "3null"

Nota : Quando um número é adicionado a uma string, o JavaScript converte o número em uma string antes da concatenação.

Exemplo 2: conversão implícita em número

 // numeric string used with - , / , * results number type let result; result = '4' - '2'; console.log(result); // 2 result = '4' - 2; console.log(result); // 2 result = '4' * 2; console.log(result); // 8 result = '4' / 2; console.log(result); // 2

Exemplo 3: resultados de string não numéricos para NaN

 // non-numeric string used with +, - , / , * results to NaN let result; result = 'hello' - 'world'; console.log(result); // NaN result = '4' - 'hello'; console.log(result); // NaN

Exemplo 4: conversão booleana implícita em número

 // if boolean is used, true is 1, false is 0 let result; result = '4' - true; console.log(result); // 3 result = 4 + true; console.log(result); // 5 result = 4 + false; console.log(result); // 4

Nota: JavaScript considera 0 como falsee todos os números diferentes de zero como true. E, se truefor convertido para um número, o resultado será sempre 1.

Exemplo 5: conversão nula em número

 // null is 0 when used with number let result; result = 4 + null; console.log(result); // 4 result = 4 - null; console.log(result); // 4

Exemplo 6: undefined usado com number, boolean ou null

 // Arithmetic operation of undefined with number, boolean or null gives NaN let result; result = 4 + undefined; console.log(result); // NaN result = 4 - undefined; console.log(result); // NaN result = true + undefined; console.log(result); // NaN result = null + undefined; console.log(result); // NaN

Conversão Explícita de JavaScript

Você também pode converter um tipo de dados em outro de acordo com suas necessidades. A conversão de tipo que você faz manualmente é conhecida como conversão de tipo explícita.

Em JavaScript, as conversões explícitas de tipo são feitas usando métodos integrados.

Aqui estão alguns métodos comuns de conversões explícitas.

1. Converter para número explicitamente

Para converter strings numéricas e valores booleanos em números, você pode usar Number(). Por exemplo,

 let result; // string to number result = Number('324'); console.log(result); // 324 result = Number('324e-1') console.log(result); // 32.4 // boolean to number result = Number(true); console.log(result); // 1 result = Number(false); console.log(result); // 0

Em JavaScript, strings e nullvalores vazios retornam 0 . Por exemplo,

 let result; result = Number(null); console.log(result); // 0 let result = Number(' ') console.log(result); // 0

Se uma string for um número inválido, o resultado será NaN. Por exemplo,

 let result; result = Number('hello'); console.log(result); // NaN result = Number(undefined); console.log(result); // NaN result = Number(NaN); console.log(result); // NaN

Nota : Você também pode gerar números de strings usando parseInt(), parseFloat(), operador unário +e Math.floor(). Por exemplo,

 let result; result = parseInt('20.01'); console.log(result); // 20 result = parseFloat('20.01'); console.log(result); // 20.01 result = +'20.01'; console.log(result); // 20.01 result = Math.floor('20.01'); console.log(result); // 20

2. Converta para string explicitamente

Para converter outros tipos de dados em strings, você pode usar String()ou toString(). Por exemplo,

 //number to string let result; result = String(324); console.log(result); // "324" result = String(2 + 4); console.log(result); // "6" //other data types to string result = String(null); console.log(result); // "null" result = String(undefined); console.log(result); // "undefined" result = String(NaN); console.log(result); // "NaN" result = String(true); console.log(result); // "true" result = String(false); console.log(result); // "false" // using toString() result = (324).toString(); console.log(result); // "324" result = true.toString(); console.log(result); // "true"

Nota : String()pega nulle undefinedconverte em string. Porém, toString()dá erro quandonull are passed.

3. Converter explicitamente em booleano

Para converter outros tipos de dados em um booleano, você pode usar Boolean().

Em JavaScript, undefined, null, 0, NaN, ''convertidos ao false. Por exemplo,

  let result; result = Boolean(''); console.log(result); // false result = Boolean(0); console.log(result); // false result = Boolean(undefined); console.log(result); // false result = Boolean(null); console.log(result); // false result = Boolean(NaN); console.log(result); // false

Todos os outros valores dão true. Por exemplo,

  result = Boolean(324); console.log(result); // true result = Boolean('hello'); console.log(result); // true result = Boolean(' '); console.log(result); // true

Tabela de conversão de tipo de JavaScript

A tabela mostra a conversão de diferentes valores para String, Number e Boolean em JavaScript.

Value String Conversion Number Conversion Boolean Conversion
1 "1" 1 true
0 "0" 0 false
"1" "1" 1 true
"0" "0" 0 true
"ten" "ten" NaN true
true "true" 1 true
false "false" 0 false
null "null" 0 false
undefined "undefined" NaN false
'' "" 0 false
' ' " " 0 true

Você aprenderá sobre a conversão de objetos e matrizes em outros tipos de dados em tutoriais posteriores.

Visite estes exemplos para saber mais:

  • JavaScript datas para números
  • Datas de JavaScript para Strings

Artigos interessantes...