Hoisting é o comportamento do JavaScript de mover declarações para o topo de seu escopo durante a fase de compilação, antes de qualquer código ser executado. Mas como algo é feito hoisting difere dependendo do tipo de declaração.
js
.(a);
a = ;
();
() { .(); }
.(b);
b = ;
