Registrando funções no JavaScript
Existem duas formas de registrar funções no JavaScript, function expression
e function declaration
, hoje vamos conhecer cada uma delas e suas respectivas diferenças.
Function declaration
Uma declaração de função (ou function declaration) define uma função com os parâmetros especificados sem a necessidade de uma atribuição de variável. Ela é declarada usando a palavra-chave function.
Function expression
Uma Expressão de Função (ou function expression) funciona exatamente como uma function declaration, porém são funções anônimas, elas não possuem nomes e são executadas assim que são definidas.
A partir do ECMAScript 2015, foi introduzida as Arrow Functions(ou funções de seta), que é uma function expression com uma sintaxe mais curta, elas são bastante aplicadas em funções que recebem callbacks. Veja o exemplo abaixo de uma arrow function sendo usada como parâmetro na função map():
Qual é a diferença entre as duas?
A principal diferença é que a function declaration pode ser chamada antes de ser declarada sem que haja qualquer erro, já com a function expression não é possível, vai ser lançado um erro.