Короче, если вы возьмете следующий код, в первом примере будет создана функция с именем foo
, во втором примере будет создана анонимная функция и назначена переменная bar
.Помимо стиля, основное отличие состоит в том, что foo
может вызываться в коде до его определения (так как это имя функции);в противном случае bar
является неопределенной переменной до получения назначения, поэтому ее нельзя использовать раньше.
var foo_result = foo(123); // ok
function foo(param) { /* ... */ }
var bar_result = bar(123); // error: undefined is not a function
var bar = function(param) { /* ... */ }
var bar_result = bar(123); // ok
Я бы порекомендовал вам прочитать предложение @ Pekka.