Они на самом деле похожи. Вы спрашиваете о различиях в выражениях функций и объявлениях функций
// function declaration
function add(a, b) {
return a+b;
}
// function expression
var add = function(a, b) {
return a+b;
}
Существует еще существенная разница:
Подъемно
: Когда загружается файл javascript, все функции, написанные с помощью объявлений функций, поднимаются, в основном «известные», перед выполнением любого кода. Таким образом, вы можете вызвать функцию ранее в программе и объявить ее позже. Это будет работать.
Что не так с «выражениями функций». Если вы вызываете функцию до того, как ее выразили, она не будет работать.
// function declaration works
add(5, 10);
function add(a, b) {
return a+b;
}
// function expression doesn't work
subtract(3, 9);
var subtract = function(a, b) {
return a - b;
}
Таким образом, вы должны объявить выражения функций перед их использованием.