Skillnad mellan funktionsdeklarationer
Båda sätten att deklarera en funktion är likvärdiga, men det finns en väsentlig skillnad: funktioner som deklarerade som Function Declaration kommer att vara tillgängliga, även om man använder dem innan de här deklarerades.
Se exempel:
// Anropar funktionen före dess deklaration:
func(); // skriver ut '!'
function func() {
console.log('!');
}
Medan funktionsuttryck skapas i ögonblicket att koden exekveras och är inte tillgängliga ovanför. Därför kommer denna kod att ge ett fel:
func(); // fel, en sådan funktion finns inte ännu!
let func = function() {
console.log('!');
};
Skapa en funktion som Function Declaration. Kontrollera att den kommer att vara tillgänglig ovanför platsen för dess deklaration.
Skapa en funktion som Function Expression. Kontrollera att den inte kommer att vara tillgänglig ovanför platsen för dess deklaration.