Создание функции через присваивание переменной называется "Function Expression", второй способ "Function Declaration", можно выделить пожалуй одно основное отличие.
Функция, объявленная как Function Declaration, создается интерпретатором до выполнения кода. То есть если у вас Function Declaration и вы вызываете функцию до того как она объявляется в коде, всё будет замечательно работать. Если у вас Function Expression, а вы пытаетесь её вызывать до того, как выполнилось присваивание, получите ошибку. Подробнее можно прочитать
тут