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