Rozdiel deklarácií funkcie
Oba spôsoby deklarácie funkcie sú ekvivalentné, ale je tu podstatný rozdiel: funkcie deklarované ako Function Declaration budú dostupné, aj keď sa na ne odkazujeme predtým, ako boli deklarované.
Pozrite si príklad:
// Odvolávame sa na funkciu pred jej deklaráciou:
func(); //vypíše '!'
function func() {
console.log('!');
}
Funkčné výrazy sa vytvárajú v momente vykonávania kódu a nie sú dostupné vyššie. Preto takýto kód vyhodí chybu:
func(); //chyba, taká funkcia ešte neexistuje!
let func = function() {
console.log('!');
};
Vytvorte funkciu ako Function Declaration. Skontrolujte, že bude dostupná vyššie miesta svojej deklarácie.
Vytvorte funkciu ako Function Expression. Skontrolujte, že nebude dostupná vyššie miesta svojej deklarácie.