Что такое подъем?

Поднятие позволяет определенным переменным стать доступными в их коде до того, как он будет выполнен. Перед выполнением код сканируется на наличие объявлений переменных, поэтому для каждой переменной создается свойство в среде переменных.

Поднятые переменные

Переменные 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) {

вернуть х + у;

}

Это вызовет ошибку ссылки, указывающую, что к ней нельзя получить доступ до инициализации.