Подъем - это не то, что функции и переменные перемещаются наверх.
На самом деле, технически они никуда не перемещаются.

Это происходит во время объявления функции, когда полная функция
находится в памяти.

Для объявления переменной JavaScript инициализируется значением «undefined» во время создания. Я использовал отладчик, чтобы остановить выполняющийся код в строке 6.

Например

Вы заметили одну вещь на изображении выше. Механизм JavaScript уже инициализирован значением «undefined»?

Всякий раз, когда движок JavaScript запускает строку 6, он обновляет undefined до «подъема».

Для функций полная функция добавляется в область памяти.

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

Вы проверили подъем по ключевым словам let и var?

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

для "var" ошибки не отображаются.

Надеюсь, вам это понравится.

✉️ Подпишитесь на рассылку еженедельно Email Blast от CodeBurst 🐦 Подпишитесь на CodeBurst на Twitter , просмотрите 🗺️ Дорожная карта веб-разработчиков на 2018 год и 🕸️ Изучите веб-разработку с полным стеком .