Hoisting
JavaScript
Comportamento de mover declarações para o topo do escopo antes da execução.
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.
seção
Exemplo
console.log(x); // undefinedvar x = 1;// console.log(y); // TDZ ReferenceErrorlet y = 2;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
seção
Armadilhas comuns
Achar que let não é hoisted
Function expression não hoistada como declaration
seção
Termos relacionados
Mais em JavaScript
Outros termos da mesma categoria para revisão em sequência.
Temporal Dead Zone (TDZ)
JSPeríodo entre entrar no escopo e a declaração let/const onde o binding não pode ser acessado.
ver definiçãoStrict Mode
JSModo restrito ativado por use strict que captura erros silenciosos e proíbe sintaxe insegura.
ver definiçãothis
JSBinding dinâmico ao contexto de execução da função ou método.
ver definição