Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Função parseInt e Retorno da função prompt

Boa Noite,

Gostaria de saber o motivo de nesse código quando uso a função prompt para solicitar ao usuário que informe a altura e o peso não preciso passar o parseInt , pois conforme informado pela explicação da aula passada o prompt retorna String então quando ele fizer a operação do imc para os dados passados de altura e peso era para apresentar um erro ? procede ?

Fiz esse código sem passar o parseInt e ele calcula o IMC normalmente, conferi na calculadora e os retornos estão corretos, queria entender o motivo alguém pode me ajudar ?

<meta charset="UTF-8">
<script>
    function pulaLinha() {
        document.write("<br>");
        document.write("<hr>");
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    function calculaImc(altura, peso) {

        var imc = Math.round(peso / (altura * altura));
        return imc;
    }

    var nome = prompt("Informe seu nome : ");
    var altura = prompt("Informe a sua altura : ");
    var peso = prompt("Informe seu peso : ");

    var imc = calculaImc(altura, peso);
    mostra("O Índice de Massa Corporal de " + nome + " é " + (imc) + ".");

    if (imc < 18.5) {

        mostra("O seu IMC está abaixo do recomendado pela Organização Mundial da Saúde ! ");

    }

    if (imc > 35) {

        mostra("O seu IMC está acima do recomendado pela Organização Mundial da Saúde ! ");

    }

    if (imc >= 18.5 && imc <= 35) {

        mostra("O seu IMC está excelente conforme os padões da Organização Mundial da Saúde ! ");

    }


</script>
1 resposta
solução!

JavaScript usa o operador + para Adição (operação matemática) e, também, para Concatenação. Números são adicionados/somados. Strings são concatenados/unidas. A questão é que ao adicionar(+) um número e uma string, o JavaScript tratará o número como uma string(vai concatenar). Caso tente multiplicar um número e uma string ou fazer outra operação matemática, se a String contiver um valor numérico será convertido para um número, caso o valor seja texto dará erro pois a String será NaN. O JavaScript trata dessas conversões sozinho, o que confunde um pouco a gente.

O vídeo que Flávio explica é o da Aula 6 - 01.

Outra fonte:

Números em JavaScript: https://www.w3schools.com/js/js_numbers.asp (Entendi por essa)

Tipos de Dados: https://www.w3schools.com/js/js_datatypes.asp

Espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software