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 ✓.