2
respostas

porque não usamos parseInt dessa vez ?

temos o seguinte código

var alturaInformada = prompt ("sua altura é ?");var pesoInformado = prompt ("seu peso é");

minha duvida é: Se o prompt retorna uma String e não um numero, como ele consegue executar ? quando eu estava fazendo usei

var alturaInformada = parseInt (prompt ("sua altura é ?"));var pesoInformado = parseInt (prompt ("seu peso é"));

e aparecia o erro, o imc que ele dava era o valor que o usuário colocava como peso, nas aulas aprendi uma coisa mas na prática é outra, gostaria que alguém pudesse esclarecer, obg.

2 respostas

Olá Guilherme, tudo bom?

Bem, não entendi muito bem sua dúvida, acredito que você esteja querendo saber o porque de que o prompt sem o parseInt funciona.

Ocorre o seguinte, a variável do tipo "var" é um tipo dinâmico que realiza conversões implícitas com base no valor passado. Ou seja, se você passar string, ele interpretará como string, se fosse um inteiro, converteria para um inteiro e assim sucessivelmente.

Sobre seu código fonte, realmente não entendi, mas escrevi um fiddle em Js para você ver.

https://jsfiddle.net/Lh28sbax/1/

Espero ter te ajudado. Até mais.

Oi Guilherme boa tarde, respondendo suas dúvidas:

minha duvida é: Se o prompt retorna uma String e não um numero, como ele consegue executar ? 

var alturaInformada = prompt ("sua altura é ?");

R: O método prompt exibe uma caixa de diálogo ao usuário o que o usuário digitar nessa caixa é recebido como uma cadeia de caracteres(String) se o que estamos esperando são números precisamos realizar uma conversão quando isso for possível.

Por exemplo se o usuário digitar 1.74 esse "1.74" será uma string não esqueça que string não necessariamente se trata de letras e sim de qualquer valor de texto (letras, números,símbolos).

Como o que queremos é um número para podermos trabalhar com os cálculos do IMC precisamos converter essa entrada do usuário para um Número.

Para solucionar esse problema podemos converter esse número para um inteiro com o parseInt ou podemos converter para um número com casas decimais com o parseFloat ou ainda podemos converter com Number ficando assim:

var alturaInformada= Number(window.prompt("Digite a sua altura", "1.74")); 

Perceba que além de converter a cadeia de caracteres para um número eu também indico um valor padrão apra altura para que o usuário reconheça que deve separar os centímetros com . e não com vírgula.

Espero ter ajudado e bons estudos.