$cat~/glossario/hoisting.md

Hoisting

JavaScript

Comportamento de mover declarações para o topo do escopo antes da execução.

hoisting.mdmarkdown
01

seção

Explicação

Hoisting — Comportamento de mover declarações para o topo do escopo antes da execução.

Declarações function e var são processadas antes da execução do escopo — bindings existem, mas var inicia undefined até a linha de atribuição.

let/const também são hoisted mas ficam na TDZ até a declaração.

02

seção

Exemplo

snippetJavaScript
console.log(x); // undefinedvar x = 1;// console.log(y); // TDZ ReferenceErrorlet y = 2;
03

seção

Modo de uso

  • Entender por que function declaration pode ser chamada antes

  • Evitar var em favor de let/const

  • Organizar imports no topo

04

seção

Armadilhas comuns

  • Achar que let não é hoisted

  • Function expression não hoistada como declaration

05

seção

Termos relacionados