1
resposta

[Dúvida] Função gerarNúmeroAleatório.

Eu não consegui ter um entendimento plausível declarando a função gerar número aleatório antes da criação dela. Então, movi ela para as primeiras linhas do código porém não sei se isso é uma boa prática. Me ajudem por favor!

let numeroSecreto =  gerarNumeroAleatorio();
let tentativas = 1;

function gerarNumeroAleatorio() { 
    return parseInt(Math.random()* 10 + 1);
}


function exibirTextoNaTela(tag, texto) {
    let titulo = document.querySelector(tag);
    titulo.innerHTML = texto;
}
exibirTextoNaTela("h1", "Jogo do Número Secreto");
exibirTextoNaTela("p","Escolha um número Secreto entre 1 e 10" );


function verificarChute() {

    let chute =document.querySelector("input").value;
    
  if (chute == numeroSecreto){ 
        
        exibirTextoNaTela("h1","Você acertou!");

        let palavraTentativa = tentativas > 1?  "tentativas" : "tentativa";

        let mensagemTentativas = `Incrível! Você descobriu o número secreto com ${tentativas} ${palavraTentativa}.`;

        exibirTextoNaTela("p", mensagemTentativas);
        
        document.getElementById("reiniciar").removeAttribute("disabled");
     
    } else if (chute > numeroSecreto) {
        exibirTextoNaTela("h1", "Você errou!");
        exibirTextoNaTela("p", "O número secreto é menor.");

    }  else {      
        exibirTextoNaTela("h1", "Você errou!");
        exibirTextoNaTela("p", "O número secreto é maior");
    }
    
    limparCampo();
    tentativas++;
}

function limparCampo(){
    chute = document.querySelector("input");
    chute.value = "";
}

1 resposta

Oi Claudia, tudo bem?

No JavaScript, é comum e aceitável utilizar a declaração de função (function declaration) antes de seu uso devido ao hoisting. O hoisting é um comportamento do JavaScript onde as declarações de funções e variáveis são movidas para o topo do seu escopo antes da execução do código.

Então mesmo que a função gerarNumeroAleatorio seja chamada antes de sua declaração no código, o JavaScript entende que ela existe devido ao hoisting. Isso é perfeitamente aceitável e uma prática comum.

Um abraço e bons estudos.