Olá, Ruan! Tudo certo?
Peço desculpas pela demora no retorno.
Isso não é um comportamento tão comum em outras linguagens e tem a ver com um conceito no JavaScript chamado hoisting. Basicamente, o hoisting (ou içar, em português) permite que você execute funções antes das suas declarações, porque, conceitualmente, em tempo de execução o JavaScript irá içar/elevar as declarações de variáveis e funções para o topo do código (por baixo dos panos é um pouco diferente).
Quando um código JavaScript é executado, é verificado se todas as chamadas de funções tem as funções respectivas, não importando a parte do arquivo onde elas estão declaradas.
Então, se escrevermos:
function cumprimenta(nome) {
console.log("Olá " + nome);
}
cumprimenta("Ruan");
Ou escrevermos:
cumprimenta("Ruan");
function cumprimenta(nome) {
console.log("Olá " + nome);
}
Teremos o mesmo resultado!
Eu sugiro fortemente que dê uma lida neste artigo sobre hoisting e nesta documentação para entender melhor como usar dessa característica do JavaScript.
Caso tenha ficado com alguma dúvida, não deixe de compartilhar!
Continue praticando e evoluindo na sua jornada.
Bons estudos e até mais!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!