1
resposta

[Dúvida] LEITURA LINHA A LINHA

Prezados,

A professora menciona no início do vídeo que o JavaScript lê linha a linha do código. Dessa forma, se declaramos uma lista fora da ordem, irá gerar um erro.

Mas ao longo do curso, houve algumas funções que foram criadas no final do código e chamada antes (na parte intermediária para o final do código).

Por que nesse caso não houve erro?

Exemplo:

A função limparCampo() foi chamada após a adição das tentativas, mas ela é declarada após esse momento.

function limparCampo() {
    chute = document.querySelector('input');
    chute.value = '';
}
1 resposta

Olá Tiago! Tudo bem?

Essa é uma ótima pergunta e é algo que pode confundir mesmo quando estamos começando a programar. No JavaScript, a leitura do código realmente acontece linha a linha, mas existe um conceito chamado "hoisting" que pode explicar por que algumas funções podem ser chamadas antes de serem declaradas.

O "hoisting" é um comportamento do JavaScript em que as declarações de variáveis e funções são "elevadas" ao topo do seu escopo antes da execução do código. Isso significa que, no caso de funções declaradas com a palavra-chave function, como function limparCampo(), elas são "elevadas" para o topo do escopo e podem ser chamadas antes de sua declaração no código.

Por exemplo, no seu caso:

limparCampo(); // Isso funciona devido ao hoisting

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

Aqui, a função limparCampo() é "elevada" ao topo do escopo, permitindo que você a chame antes mesmo de sua definição no arquivo. Isso não acontece com funções atribuídas a variáveis (funções anônimas ou funções de seta), já que apenas a declaração da variável é "elevada", mas não a atribuição.

Espero ter ajudado e bons estudos!

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