Читайте Function Declaration, Function Expression.
Первый - function expression, и второй тоже. В первом присвоение ссылки происходит в контексте инструкции var, ссылка на функцию не возвращается после присвоения. Второй вариант - ссылка на функцию присваивается и возвращается.
Третий - function declaration, функция создается, но ссылка на функцию не возвращается, при этом она сохраняется под именем f.