2.5 - Conversão de tipos

Em expressões envolvendo valores numéricos e strings com o operador +, os valores numéricos serão convertidos implicitamente para strings. Exemplo:

X = "A resposta é " + 35; // retorna "A resposta é 35"
Y = 35 + " é a resposta" // retorna "35 é a resposta"

Em expressões envolvendo outros operadores a conversão será feita de acordo com o tipo de dado esperado pelo operador. Exemplo:

X = "37" - 7 // retorna 30
Y = "37" + 7 // retorna 377

Quando dois valores são comparados, números, strings e valores lógicos são comparados por valor:

3 == "3" // Resultado true
1 && true // Resultado true

Usando a conversão implícita podemos usar de um artifício simples para forçar a conversão de número para string e de string para número.

Número para string:

i = 25 ;
s = "" + i ; // s recebe "25"

String para número:

s = "256" ;
j = s - 0 ; // j recebe 256

Para converter explicitamente strings em números existem as funções predefinidas parseInt e parseFloat.

parseInt (str) ou parseInt (str,base)

Converte uma string num número inteiro. Str é a string a ser convertida e base é a base em que os números estão codificados. Se a base não for especificada, assume que a string é uma seqüência de algarismos na base decimal (0,1,2,3,4,5,6,7,8,9). Caso encontre algum caracter diferente dos esperados, encerra a conversão. Exemplo:

num = "3A";
x = parseInt(num); // x recebe 3
y = parseInt(num,16); // y recebe 58

parseFloat (str)

É a função equivalente a parseInt, para converter strings em números reais. Da mesma forma, se encontrar algum caracter não esperado, encerra a conversão. Exemplo:

z = parseFloat("3.15"); // z recebe 3.15