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

No código final o botão/função de "verifica" não funciona.

No código final o botão/função de "verifica" deixa de funcionar.

Uncaught SyntaxError: Unexpected end of input

para

button.onclick = verifica;
6 respostas

Pode postar o código completo (HTML + Javascript) aqui ou no codepen??

<script>

    function sorteia() {

        return Math.round(Math.random() * 10);

    }

    function sorteiaNumeros(quantidade) {

        var segredos = [];

        var numero = 1;

        while(numero <= quantidade) {

            var numeroAleatorio = sorteia();

            if(numeroAleatorio !== 0 ) {

                var achou = false;

                for(var posicao = 0; posicao < segredos.length; posicao++) {

                    if(segredos[posicao] == numeroAleatorio){
                        achou = true;
                        break;
                    }    
                }

                if(achou == false) {
                    segredos.push(numeroAleatorio);
                    numero++;
                }
            }
        }
        return segredos;

    var segredos = sorteiaNumeros(3);

    console.log(segredos);

        var input = document.querySelector("input");
    input.focus();

    function verifica() {

       var achou = false;

       for(var posicao = 0; posicao < segredos.lenght; posicao++) {

                 if(input.value == segredos[posicao]) {

                     alert("Você ACERTOU!");
              achou = true;
              break;
        } 
            }

         if(achou == false) {

                     alert("Você ERROU!");
        }

            input.value = "";
            input.focus();

        }

    var button = document.querySelector("button");

    button.onclick = verifica;

</script>

O que acontece é que "verifica" é uma função. E pra executar ele você precisa colocar dois parênteses no final dela.

O correto seria:

button.onclick = verifica();

É uma boa observação Vinícius. Entretanto na própria aula é instruído para que seja removido os parênteses do verifica, para que sua função seja incluída de fato dentro do "onclick ".

E mesmo inserindo os parênteses nesse caso, o mesmo "erro" é mostrado no console.

*obs: no Download oficial dos arquivos da aula, o programa funciona normalmente, entretanto nos códigos especificados durante a aula escrita, temos que lidar com esse erro, sem que haja nenhuma diferença entre eles.

Nesse caso você precisa postar o HTML também, o erro pode estar nele.

solução!

Resolvido (mas não totalmente compreendido, haha)

Aparentemente estava faltando um fechamento "}" na função "sorteiaNumeros" . Com isso o problema do erro foi resolvido, mas não explica o porque de a mensagem de erro aparecer na última linha do código, fora da própria função.

De qualquer forma, everything's working.