В JavaScript Engine мы запускаем наш код, но когда мне нужно понять, как он читает мой код, я узнал о Hoisting. Я прочитал и выучил очень интересную концепцию: что появилось раньше яйцо или курица? Но сначала давайте разберемся, что делает JavaScript Engine?

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

Движок JavaScript читает мой код здесь, одно действие называется «выделение памяти». Чтобы выделить память JavaScript, выполните Hoisting.

«Перемещение функций и переменных в начало кода называется подъемом»

Теперь давайте перейдем к нашему вопросу.

Давайте прочитаем код

а = 5; // объявление переменной

вар а =; // объявление переменной

console.log(а); // присвоение переменной

Я получу вывод как 5. Теперь давайте покрутим этот код.

console.log(а); // присвоение переменной

переменная = 5; // объявление и присвоение переменной

Теперь, насколько я понимаю, этот код выдаст мне справочную ошибку, так как движок JavaScript читает код построчно и не получит значение a. Но этого не произойдет, когда он на самом деле напишет этот код. Движок JavaScript работает по-другому. Теперь давайте попробуем понять, что он делает.

Таким образом, мы в Hoisting предоставляем пространство памяти, т.е. объявление переменной и функции.

Если яйцо = объявление и курица = задание, то мы получаем наш ответ

Яйцо будет первым, и это прекрасно определит подъем.