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

Por que o console.log só funciona fora da function nesse caso?

<meta charset="UTF-8">
<script>

    function pulaLinha() {

        document.write("<br>");
    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
    }

    function sorteia(n) {
        return Math.round(Math.random()*n);
        console.log(numeroPensado) // sei que o log funciona fora da function, mas por quê?

    }

    let numeroPensado = sorteia(10)
    let numeroDigitado = parseInt(prompt("Digite um número de 1 a 10"))




    if (numeroDigitado == numeroPensado) {
        mostra("você acertou o número")
    } else {
        mostra("você errou o número")
    }

</script>
insira seu código aqui

insira seu código aqui

2 respostas
solução!

Olá, tudo certo? Isso está acontecendo por 2 motivos.

1 - Você está chamando o console.log() depois do return da função, ele deve vir antes.

2 - A variável numeroPensado ainda não possui valor dentro da função, é por isso que ela não exibe nada no console. Se quiser ter uma melhor visão do que estou dizendo, teste a função desta forma:

function sorteia(n) {        
        console.log("teste")
        return Math.round(Math.random()*n);
}

Fazendo isso você vai perceber que o "teste" será exibido no console.

Faz sentido. Após eu dar console.log depois que o numeroPensado foi criado pela variável let numeroPensado = sorteia(10) ele dá log no console. dessa forma:

<meta charset="UTF-8">
<script>

    function pulaLinha() {

        document.write("<br>");
    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
    }

    function sorteia(n) {
       return Math.round(Math.random()*n);
    }

    let numeroPensado = sorteia(10)
    console.log(numeroPensado) // coloquei o console.log aqui, pois pelos meus testes será aqui que o numeroPensado ganha valor e pode logar.
    let numeroDigitado = parseInt(prompt("Digite um número de 0 a 10"))



    if (numeroDigitado == numeroPensado) {
        mostra("você acertou o número")
    } else {
        mostra("você errou o número")
    }

</script>