Задать вопрос

Что такое hoisting javascript?

Добрый день! Недавно был на собеседовании и прозвучал такой вопрос, что такое hoisting javascript? В гугле нормальго ответа не нашел.
Буду благодарен за разъяснения, пример, а также, если поделитесь подобными вопросами, которые можно услышать на собеседовании.
Заранее благодарю!
  • Вопрос задан
  • 10606 просмотров
Подписаться 4 Средний Комментировать
Решения вопроса 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 интерпретатора, которая упоминается везде, но не везде ей дается этот термин.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы