Что такое подъем?
Поднятие позволяет определенным переменным стать доступными в их коде до того, как он будет выполнен. Перед выполнением код сканируется на наличие объявлений переменных, поэтому для каждой переменной создается свойство в среде переменных.
Поднятые переменные
Переменные let и const не поднимаются. Вместо этого они используются во временной мертвой зоне и остаются неинициализированными. Эти переменные становятся доступными, как только они определены. Считается плохой практикой пытаться получить доступ к переменной до ее определения.
Переменные «var» подняты. Это связано с тем, что они относятся к области действия функции, однако их значения могут быть неопределенными. Поэтому рекомендуется не использовать «var» в современном JavaScript.
console.log(игра);
console.log(контроллер);
console.log(новая консоль);
пусть игра = «Halo»
const контроллер = «Контроллер Xbox»
var newConsole = ‘Xbox One X’
Приведенный выше код демонстрирует, что эти переменные будут вызывать ошибку, если они будут вызваны до их объявления. Однако с переменной «var» она просто вернется как неопределенная.
Когда строгий режим включен, объявления функций также могут быть подняты. Это связано с тем, что они имеют блочную область видимости.
вычислитьЧисло(12, 13)
функция calculateNumber(x, y) {
console.log(х + у);
}
Это вернет результат 25. Его можно вызвать до того, как он будет определен в коде.
Функциональные выражения и функции со стрелками не поднимаются. В основном это зависит от того, используются ли «var» или «let» и «const».
Функция стрелки
console.log(useArrowExpression(12, 13));
const useArrowExpression = (x, y) => x + y;
Это вызовет ошибку ссылки, указывающую, что к ней нельзя получить доступ до инициализации.
Выражение функции
console.log(useFunctionExpression(12, 13));
const useFunctionExpression = функция (x, y) {
вернуть х + у;
}
Это вызовет ошибку ссылки, указывающую, что к ней нельзя получить доступ до инициализации.