以下のJavaScriptの関数の実行方法はどういった違いがあるのでしょうか?実行結果は同じなのでそれぞれどういった場合に使うのかについての答えが得られれば幸いです。

Case 1:

!function(a){
    alert(a);
}("Hello World");

Case 2:

(function(a){
    alert(a);
})("Hello World");

挙動が同じかどうかについて確認するために jsfiddle のリンクを張っておきます。 alert() 部分はコメントアウトしてあるので実行する際にコメントを外してください。

http://jsfiddle.net/1jwz7yfe/