Funzione con nome, ma Function Expression in JavaScript

Ora creiamo una funzione che avrà un nome, ma sarà comunque una Function Expression, perché partecipa in un'espressione:

javascript+function func() {
  console.log('!');
}

È interessante notare che non potremo accedere alla nostra funzione per nome func, ciò porterà a un errore:

javascript+function func() {
  console.log('!');
}

func(); //!! darà un errore

Per poter chiamare la nostra funzione, deve essere assegnata a una variabile:

javascriptlet test = function func() {
  console.log('!');
};

test(); // visualizzerà '!'

Ribadiamo: una funzione che è un'espressione funzionale non può essere chiamata per il suo nome. Una tale funzione può essere chiamata solo utilizzando la variabile in cui è stata assegnata questa funzione.

Tuttavia, un'espressione funzionale può avere un nome per la funzione, ciò è sintatticamente corretto. Il motivo per cui questo è utile lo affronteremo nelle prossime lezioni.

Ricapitoliamo: le funzioni sono Function Declaration o Function Expression non in base al fatto che abbiano un nome o meno, ma in base al fatto che partecipino o meno a delle espressioni.

Come avete visto sopra, una funzione senza nome può essere interpretata come una Function Declaration, e una funzione con nome può essere una Function Expression.