1
resposta

[Dúvida] Erro no console

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

1 resposta

Olá, Arthur! Tudo bem?

No primeiro print que você enviou, notei o erro de "ReferenceError: Cannot access 'numeroSecreto' before initialization" no console do navegador. Isso geralmente ocorre quando tentamos usar uma variável antes de ela ser definida.

No seu código, você definiu a variável numeroSecreto na linha 1 do arquivo app.js e tentou usá-la dentro da função verificarChute(). O problema aqui é que a função aleatorio() que inicializa numeroSecreto pode não ter sido executada antes de verificarChute() ser chamada, dependendo de como e quando cada função é chamada no seu HTML.

Para resolver esse problema, você pode garantir que numeroSecreto seja inicializado antes de qualquer função que o utilize ser chamada. Uma maneira de fazer isso é chamar a função que inicializa numeroSecreto diretamente no carregamento da página, ou antes de qualquer interação que possa chamar verificarChute(). Aqui está uma sugestão de como você pode modificar o seu código:

  1. Inicialize numeroSecreto no carregamento da página: Você pode usar o evento DOMContentLoaded para garantir que numeroSecreto seja inicializado assim que o documento HTML estiver completamente carregado.
document.addEventListener('DOMContentLoaded', function() {
    let numeroSecreto = aleatorio();
    // Outras inicializações ou funções que dependem de numeroSecreto
});

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

function verificarChute() {
    console.log(numeroSecreto);
}
  1. Garanta que numeroSecreto seja passado como argumento para verificarChute(): Outra abordagem é modificar a função verificarChute() para aceitar numeroSecreto como um argumento. Isso garante que você sempre tenha o valor correto no momento da chamada da função.
let numeroSecreto = aleatorio(); // Isso ainda está no escopo global

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

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

// Em algum lugar no seu HTML ou JavaScript, você chama verificarChute passando numeroSecreto
verificarChute(numeroSecreto);

Essas mudanças devem ajudar a resolver o problema de referência que você está enfrentando. Lembre-se de ajustar o restante do seu código conforme necessário para se adaptar a essas mudanças.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.