Convertendo Strings em Números
Convertendo Números em Strings
Convertendo datas em números
Convertendo Números em Datas
Convertendo Booleanos em Números
Convertendo Números em Booleanos
Variáveis JavaScript podem ser convertidas em uma nova variável e outro tipo de dados:
Pelo uso de uma função JavaScript
Automaticamente pelo próprio JavaScript
O método global Number()
converte uma variável (ou um valor) em um número.
Uma string numérica (como "3,14") é convertida em um número (como 3,14).
Uma string vazia (como "") é convertida em 0.
Uma string não numérica (como "John") é convertida em NaN
(não é um número).
Estes irão converter:
Number("3.14")
Number(Math.PI)
Number(" ")
Number("")
Estes não serão convertidos:
Number("99 88")
Number("John")
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Numbers</h1>
<h2>The Number() Method</h2>
<p>The Number() metod converts a variable (or value) into a number:</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
Number("3.14") + "<br>" +
Number(Math.PI) + "<br>" +
Number(" ") + "<br>" +
Number("") + "<br>" +
Number("99 88") + "<br>" +
Number("John") + "<br>";
</script>
</body>
</html>
No capítulo Métodos Numéricos, você encontrará mais métodos que podem ser usados para converter strings em números:
Descrição
Retorna um número, convertido do seu argumento
Analisa uma string e retorna um número de ponto flutuante
Analisa uma string e retorna um número inteiro
O operador unário + pode ser usado para converter uma variável em um número:
let y = "5";
// y is a string
let x = + y;
// x is a number
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>The JavaScript typeof Operator</h2>
<p>The typeof operator returns the type of a variable or expression:</p>
<p id="demo"></p>
<script>
let y = "5";
let x = + y;
document.getElementById("demo").innerHTML = typeof y + "<br>" + typeof x;
</script>
</body>
</html>
Se o variável não pode ser convertida, ela ainda se tornará um número, mas com o valor NaN
(Não é um número):
let y = "John";
// y is a string
let x = + y; // x is a number (NaN)
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>The JavaScript typeof Operator</h2>
<p>The typeof operator returns the type of a variable or expression:</p>
<p id="demo"></p>
<script>
let y = "John";
let x = + y;
document.getElementById("demo").innerHTML = typeof y + "<br>" + typeof x;
</script>
</body>
</html>
O método global String()
pode converter números em strings.
Pode ser usado em qualquer tipo de números, literais, variáveis ou expressões:
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
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>The JavaScript String() Method</h2>
<p>The String() method can convert a number to a string.</p>
<p id="demo"></p>
<script>
let x = 123;
document.getElementById("demo").innerHTML =
String(x) + "<br>" +
String(123) + "<br>" +
String(100 + 23);
</script>
</body>
</html>
O método Number toString()
faz o mesmo.
x.toString()
(123).toString()
(100 + 23).toString()
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Number Methods</h2>
<p>The toString() method converts a number to a string.</p>
<p id="demo"></p>
<script>
let x = 123;
document.getElementById("demo").innerHTML =
x.toString() + "<br>" +
(123).toString() + "<br>" +
(100 + 23).toString();
</script>
</body>
</html>
No capítulo Métodos Numéricos, você encontrará mais métodos que podem ser usados para converter números em cordas:
Retorna uma string, com um número arredondado e escrito em notação exponencial.
Retorna uma string, com um número arredondado e escrito com um número especificado de decimais.
Retorna uma string, com um número escrito com um comprimento especificado
O método global Number()
pode ser usado para converter datas em números.
d = new Date();
Number(d) // returns 1404568027739
O método de data getTime()
faz o mesmo.
d = new Date();
d.getTime() // returns 1404568027739
O método global String()
pode converter datas em cordas.
String(Date()) // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
O método Date toString()
faz o mesmo.
Date().toString() // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
No capítulo Métodos de Data, você encontrará mais métodos que podem ser usados para converter datas em cordas:
Obtenha o dia como um número (1-31)
Obtenha um número para o dia da semana (0-6)
Obtenha o ano de quatro dígitos (aaaa)
Obtenha a hora (0-23)
Obtenha os milissegundos (0-999)
Obtenha os minutos (0-59)
Obtenha o mês (0-11)
Obtenha os segundos (0-59)
Obtenha a hora (milissegundos desde 1º de janeiro de 1970)
O método global Number()
também pode converter booleanos em números.
Number(false) // returns 0
Number(true) // returns 1
O método global String()
pode converter booleanos em cordas.
String(false) // returns "false"
String(true) // returns "true"
O método booleano toString()
faz o mesmo.
false.toString() // returns "false"
true.toString() // returns "true"
Quando o JavaScript tenta operar com um tipo de dados "errado", ele tentará converta o valor para um tipo "certo".
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
Experimente você mesmo →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
(5 + null) + "<br>" +
("5" + null) + "<br>" +
("5" + 2) + "<br>" +
("5" - 2) + "<br>" +
("5" * "2") + "<br>" +
("5" / "2") + "<br>"
</script>
</body>
</html>
JavaScript chama automaticamente a função toString()
quando você tenta para "exibir" 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 booleanos 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"
Esta tabela mostra o resultado da conversão de diferentes valores JavaScript em número, string e booleano:
Valor original:
false
Convertido em número:
0
Convertido em string:
"false"
Convertido para booleano:
false
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting false to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = false;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
true
Convertido em número:
1
Convertido em string:
"true"
Convertido para booleano:
true
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting true to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = true;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
0
Convertido em número:
0
Convertido em string:
"0"
Convertido para booleano:
false
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting the number 0 to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = 0;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
1
Convertido em número:
1
Convertido em string:
"1"
Convertido para booleano:
true
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting the number 1 to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = 1;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
"0"
Convertido em número:
0
Convertido em string:
"0"
Convertido para booleano:
true
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting the string "0" to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = "0";
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
"000"
Convertido em número:
0
Convertido em string:
"000"
Convertido para booleano:
true
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting the string "000" to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = "000";
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
"1"
Convertido em número:
1
Convertido em string:
"1"
Convertido para booleano:
true
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting the string "1" to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = 1;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
NaN
Convertido em número:
NaN
Convertido em string:
"NaN"
Convertido para booleano:
false
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting NaN to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = NaN;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
Infinity
Convertido em número:
Infinity
Convertido em string:
"Infinity"
Convertido para booleano:
true
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting Infinity to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = Infinity;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
-Infinity
Convertido em número:
-Infinity
Convertido em string:
"-Infinity"
Convertido para booleano:
true
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting -Infinity to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = -Infinity;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
""
Convertido em número:
0
Convertido em string:
""
Convertido para booleano:
false
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting an empty string to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = "";
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
"20"
Convertido em número:
20
Convertido em string:
"20"
Convertido para booleano:
true
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting a numeric string to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = "20";
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
NaN
Convertido em número:
"twenty"
Convertido em string:
"twenty"
Convertido para booleano:
true
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting a text string to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = "twenty";
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
[ ]
Convertido em número:
0
Convertido em string:
""
Convertido para booleano:
true
Experimente →
<!DOCTYPE html>
<html>
<body>
<p>Converting an empty array to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
var x = [];
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
[20]
Convertido em número:
20
Convertido em string:
"20"
Convertido para booleano:
true
Experimente →
<!DOCTYPE html>
<html>
<body>
<p>Converting an array with one numeric element to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
var x = [20];
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
[10,20]
Convertido em número:
NaN
Convertido em string:
"10,20"
Convertido para booleano:
true
Experimente →
<!DOCTYPE html>
<html>
<body>
<p>Converting an array with two numeric elements to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
var x = [10,20];
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
["twenty"]
Convertido em número:
NaN
Convertido em string:
"twenty"
Convertido para booleano:
true
Experimente →
<!DOCTYPE html>
<html>
<body>
<p>Converting an array with one string element to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
var x = ["twenty"];
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
["ten","twenty"]
Convertido em número:
NaN
Convertido em string:
"ten,twenty"
Convertido para booleano:
true
Experimente →
<!DOCTYPE html>
<html>
<body>
<p>Converting an array with two string element to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
var x = ["ten","twenty"];
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
function(){}
Convertido em número:
NaN
Convertido em string:
"function(){}"
Convertido para booleano:
true
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting a function to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
const x = function(){};
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
{ }
Convertido em número:
NaN
Convertido em string:
"[object Object]"
Convertido para booleano:
true
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting an object to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
const x = {};
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
null
Convertido em número:
0
Convertido em string:
"null"
Convertido para booleano:
false
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting null to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = null;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Valor original:
undefined
Convertido em número:
NaN
Convertido em string:
"undefined"
Convertido para booleano:
false
Experimente →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Type Conversions</h2>
<p>Converting undefined to other types:</p>
<p id="demo" style="font-family:courier"></p>
<script>
let x = undefined;
document.getElementById("demo").innerHTML =
"Number : " + Number(x) + "<br>" +
"String : " + String(x) + "<br>" +
"Boolean: " + Boolean(x);
</script>
</body>
</html>
Os valores entre aspas indicam valores de string.
Valores vermelhos indicam valores que (alguns) programadores podem não esperar.