JavaScriptでの関数定義には2つあるみたいですが、違いや使い分けがわからないので教えて下さい。

パターン1

function hoge(a, b) {
    ...
}

パターン2

var hoge = function(a, b) {
    ...
}

どちらも実行するときはhoge(a, b);でよいのでしょうか。