Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

O programa está tratando números negativos como String

Sei que os números negativos não são o foco do estudo, porém quando faço a verificação no meu código pelo Chrome e digo um número negativo o Js transforma ele em uma string e não número. Alguém sabe me dizer por que isso acontece? console log com "chute inválido: precisa ser um número".Código com um console log na variável que armazena o valor que deveria ser um número, não string

2 respostas
solução!

uma forma de arrumar isso é usando parseInt() na alura tem um artigo que fala sobre isso https://www.alura.com.br/artigos/convertendo-string-para-numero-em-javascript

E em que trecho do código nós colocamos o parseInt para que isso funcione? Testei na declaração da variável numero e ela continuou se comportando da mesma forma:

function verificaSeOChutePossuiUmValorValido(chute) {
    const numero = parseInt(+chute);

    if (chuteForInvalido(numero)) {
        console.log("Valor inválido");
    }

    if (numeroForMaiorOuMenorQueOValorPermitido(numero)) {
        console.log(`Valor inválido: o número secreto precisa estar entre ${menorValor} e ${maiorValor}`);
    }
}

function chuteForInvalido(numero) {
    return Number.isNaN(numero);
}

function numeroForMaiorOuMenorQueOValorPermitido(numero) {
    return numero > maiorValor || numero < menorValor
}