Hoisting (рус. поднятие) — это действие, совершаемое JavaScript-интерпретатором и заключающееся в перемещении всех объявлений функций вида function foo() {}
и всех объявлений переменных вида var foo;
в верх их области видимости. Важно, что в самый верх перемещаются только объявления функций и переменных, но не их присвоенные значения.