Function declaration обычно доступна до своей строки в области объявления, а function expression и стрелка следуют правилам переменной, которой присвоены.
Какие виды объявления функций в JavaScript вы знаете и чем они отличаются с точки зрения hoisting?
Function declaration обычно доступна до своей строки в области объявления, а function expression и стрелка следуют правилам переменной, которой присвоены.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Function declaration обычно доступна до своей строки в области объявления, а function expression и стрелка следуют правилам переменной, которой присвоены.
Для var до присваивания будет undefined и вызов даст TypeError; let/const до инициализации дадут ReferenceError. Также существуют методы объектов, async- и generator-функции. У стрелок нет собственного this и arguments; hoisting не означает перемещение исходного текста.