ExpertiDict

JavaScript · Intermediário · Inglês · Técnico

hoisting

/ˈhɔɪstɪŋ/substantivo

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'.

Veja também

Todos os termos de JavaScript