Разница объявлений функции
Оба способа объявления функции эквивалентны, но есть существенная разница: функции, объявленные как Function Declaration, будут доступны, даже если обратится к ним до того, как они были объявлены.
Смотрите пример:
// Обращаемся к функции до ее объявления:
func(); //выведет '!'
function func() {
console.log('!');
}
А функциональные выражения создаются в момент выполнения кода и недоступны выше. Поэтому такой код выдаст ошибку:
func(); //ошибка, такой функции еще нет!
let func = function() {
console.log('!');
};
Создайте функцию как Function Declaration. Проверьте то, что она будет доступна выше места своего объявления.
Создайте функцию как Function Expression. Проверьте то, что она не будет доступна выше места своего объявления.