Подъем — это стандартное поведение Javascript, заключающееся в перемещении всех объявлений в верхнюю часть их функциональной области.
Подъем переменных
Основные принципы программирования многих языков — объявить переменную и затем инициализировать ее; однако JavaScript работает иначе. JS поднимает объявление переменной и позволяет ее использовать. Таким образом, переменная может быть объявлена после того, как она была использована.
Давайте взглянем на пример.
var a = 1; var b = 2; var c = 3; console.log (a + "" + b + "" + c);
Приведенный выше код работает, как ожидалось, выводит значения a
, b
и c
в хронологическом порядке. Однако что происходит, когда мы объявляем переменную после журнала консоли?
var a = 1; var b = 2; c = 3; console.log (a + "" + b + "" + c); var c;
Получаем тот же результат. Приведенный выше код представляет собой простой пример подъема, когда объявление переменной c
переносится в начало кода и присваивается значение 3
. Что происходит, когда мы инициализируем c
и присваиваем его значение после журнала консоли?
var a = 1; var b = 2; console.log (a + "" + b + "" + c); var c = 3;
Как видите, мы получить значение undefined
. Это связано с тем, что подъем перемещает только объявления, а не присвоения значений.. Таким образом, когда консоль регистрируется, c
будет инициализирован, но еще не получит значения.
Функции подъема
Подъем работает и для функций.
func (); function func () {var a = 1; var b = 2; var c = 3; console.log (a + "" + b + "" + c);}
Хотя подъем иногда может быть полезен, он также замедляет скорость загрузки браузера; поэтому важно соблюдать осторожность при использовании этой функции.