Hoisting
Hoisting é um comportamento do JavaScript em que declarações de variáveis e funções são 'movidas' para o topo de seu escopo antes da execução. Isso permite que funções sejam chamadas antes de sua definição no código.
Exemplo: console.log(a); var a = 5;
imprime undefined
porque a
foi içada, mas não inicializada.