Только первое - это объявление фактической функции, тогда как сокращенный метод - это просто объявление регулярной переменной с анонимной функцией, назначенной ему как ее значение.
(посмотрите также комментарии, которые также могут получить полезную информацию)
Ответ 2
Я знаю, что разница между ними заключается в том, что именованные функции работают повсюду, независимо от того, вы их объявляете, функции в переменных нет.
a();//works
function a(){..}
работы
a();//error
var a=function(){..}
не работает, но если вы вызываете его после объявления, он работает
var a=function(){..}
a();//works
Ответ 3
Нет никакой разницы поверхностно, поэтому вы можете использовать оба формата в своем коде.
В js-интерпретаторе это все равно.
Первый - это именованный funciton.
Вторая - анонимная функция, которая присваивается переменной.
Кроме того, во время отладки вы не получите имя для второй функции в трассировке стека.