O que é?
O hoisting (elevação) é um comportamento do JavaScript onde declarações de variáveis e funções são movidas para o topo do seu escopo antes da execução do código. Isso significa que você pode usar funções e variáveis antes mesmo de declará-las no código.
Como o hoisting funciona?
O JavaScript automaticamente “eleva” (hoist) declarações, mas não inicializações. Vamos entender isso na prática:
Exemplo 1 – Variáveis (var
)

Aqui, o JS move a declaração var nome;
para o topo, mas a inicialização ("Ana"
) não. Internamente, o código é interpretado assim:

Exemplo 2 – let
e const
(Sem Hoisting de Inicialização)

Aqui ocorre um “ReferenceError“, pois variáveis declaradas com let
e const
ficam na “Temporal Dead Zone” (TDZ) até serem inicializadas.
Exemplo 3 – Funções

Funções declaradas com a palavra reservada “function” sofrem o hoisting e funcionam antes da declaração.
Porém, funções “atribuídas a variáveis” e “arrow functions” não funcionam da mesma forma, veja:


Dica: Evite var
e use let
ou const
para evitar problemas com hoisting.
Gostou do conteúdo? 🚀 Compartilhe! 😃