Differenza tra le dichiarazioni di funzione
Entrambi i metodi di dichiarazione di funzione sono equivalenti, ma c'è una differenza sostanziale: le funzioni dichiarate come Function Declaration saranno accessibili, anche se ci si riferisce a loro prima che siano state dichiarate.
Guarda l'esempio:
// Ci riferiamo alla funzione prima della sua dichiarazione:
func(); //stamperà '!'
function func() {
console.log('!');
}
Le espressioni di funzione vengono create nel momento in cui il codice viene eseguito e non sono accessibili sopra. Pertanto questo codice genererà un errore:
func(); //errore, tale funzione non esiste ancora!
let func = function() {
console.log('!');
};
Crea una funzione come Function Declaration. Verifica che sarà accessibile sopra il punto della sua dichiarazione.
Crea una funzione come Function Expression. Verifica che non sarà accessibile sopra il punto della sua dichiarazione.