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

[Dúvida] Número aleatório não é exibido no console

Pessoal, tudo bem?

Conseguem me auxiliar, por favor?

Usando o código abaixo, o console do navegador não exibe o número secreto, mas sim uma mensagem com três caracteres NaN. Por que isso acontece?

let numeroSecreto = gerarNumeroSecreto();

function exibirTextoTela (tag, texto) {
    let campo = document.querySelector(tag);
    campo.innerHTML = texto;
};

exibirTextoTela('h1', 'Novo Jogo do Número Secreto');
exibirTextoTela('p', 'Escolha um número entre 1 e 10:');

function verificarChute() {
    console.log(numeroSecreto);
}

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

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

Olá, Renato!

O problema que você está enfrentando com o código está relacionado à forma como você está chamando a função Math.random. No seu código, você esqueceu de colocar os parênteses após Math.random, o que faz com que ele não seja chamado como uma função, mas sim referenciado como um objeto, o que não é o comportamento desejado. Além disso, você precisa garantir que o valor retornado seja um número inteiro entre 1 e 10.

Aqui está a correção na função gerarNumeroSecreto:

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

Agora, com os parênteses após Math.random(), a função será chamada corretamente e gerará um número decimal aleatório entre 0 e 1, que depois será multiplicado por 10 e somado a 1, e finalmente convertido para um número inteiro com parseInt.

Faça essa pequena alteração e seu código deve funcionar como esperado, exibindo um número aleatório entre 1 e 10 no console quando a função verificarChute for chamada.

Bons estudos!

Lucas, muito obrigado pela revisão e explicação e também pela agilidade na resposta.

Abraço