Diferença entre declarações de função
Ambas as formas de declarar uma função são equivalentes, mas há uma diferença crucial: funções declaradas como Function Declaration estarão disponíveis, mesmo se acessadas antes de serem declaradas.
Veja o exemplo:
// Acessamos a função antes de sua declaração:
func(); // exibirá '!'
function func() {
console.log('!');
}
Já as expressões de função são criadas no momento da execução do código e não estão disponíveis acima. Portanto, este código gerará um erro:
func(); // erro, essa função ainda não existe!
let func = function() {
console.log('!');
};
Crie uma função como Function Declaration. Verifique se ela estará disponível acima do local de sua declaração.
Crie uma função como Function Expression. Verifique se ela não estará disponível acima do local de sua declaração.