Różnica w deklaracjach funkcji
Oba sposoby deklarowania funkcji są równoważne, ale istnieje istotna różnica: funkcje zadeklarowane jako Function Declaration będą dostępne, nawet jeśli odwołamy się do nich zanim zostały zadeklarowane.
Zobacz przykład:
// Odwołujemy się do funkcji przed jej deklaracją:
func(); //wypisze '!'
function func() {
console.log('!');
}
Wyrażenia funkcyjne są tworzone w momencie wykonywania kodu i niedostępne wyżej. Dlatego taki kod zwróci błąd:
func(); //błąd, takiej funkcji jeszcze nie ma!
let func = function() {
console.log('!');
};
Utwórz funkcję jako Function Declaration. Sprawdź, że będzie dostępna powyżej miejsca swojej deklaracji.
Utwórz funkcję jako Function Expression. Sprawdź, że nie będzie dostępna powyżej miejsca swojej deklaracji.