Что такое hoisting javascript?

Добрый день! Недавно был на собеседовании и прозвучал такой вопрос, что такое hoisting javascript? В гугле нормальго ответа не нашел.
Буду благодарен за разъяснения, пример, а также, если поделитесь подобными вопросами, которые можно услышать на собеседовании.
Заранее благодарю!
  • Вопрос задан
  • 10498 просмотров
Решения вопроса 1
Вас спросили о всплытии переменных
www.w3schools.com/js/js_hoisting.asp
https://habrahabr.ru/post/127482/
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Подъём, когда при объявлении функции интерпретатор знает заранее обо всех локальных переменных этой функции, поэтому он поднимает объявление всех переменных в начало функции без инициализации.

function func() {
    var i;
    console.log(i); // undefined так как инициализация происходит ниже по коду
    i = 1;
}


Отсюда вывод, что объявлять и инициализировать переменные функции нужно в начале функции.
Ответ написан
aleksand44
@aleksand44
меня тоже спросили как-то и я не ответил, потом это повторилось еще раз. Разобравшись в этом вопросе, стало оч обидно, так как знал я эту особенность движка JS с самого начала, и про функции и про переменные (раньше особенно было модно объявлять функции в конце скрипта).
Какой смысл называть это каким-то ущербным термином, я не понимаю, это просто особенность JS интерпретатора, которая упоминается везде, но не везде ей дается этот термин.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы