JavaScript · Intermediário · Inglês · Técnico
hoisting
Comportamento em que declarações são registradas no início do escopo antes da execução: funções já utilizáveis, var como undefined, e let e const na zona morta temporal.
Onde usar
Explica por que dá para chamar uma função declarada mais abaixo no arquivo e por que var aparece vazio. Em code review, depender de hoisting dificulta a leitura.
Em código
console.log(a); // undefined
var a = 1;
saudar(); // funciona
function saudar() { console.log('oi'); }
console.log(b); // ReferenceError
let b = 2;Exemplos
The function works before its declaration because of hoisting.
A função funciona antes da declaração por causa do hoisting.
Var gets hoisted, but its value stays undefined.
O var sofre hoisting, mas o valor continua undefined.
Cuidado
Imaginar que o código é movido fisicamente para cima; o que acontece é a criação das ligações na fase de preparação do escopo.
Sinônimos
içamento
Origem
Do inglês hoist, 'içar'.