次のコードは、構文エラーのため機能しません。
function() {
alert('foo')
}()
上記コードの JSFiddle URL: http://jsfiddle.net/qr2fr/
このコードは、次の方法で関数定義の周りに括弧のペアを追加することで修正できます。
(function() {
alert('foo')
})()
上記コードの JSFiddle URL: http://jsfiddle.net/t6sJs/
ただし、次の JavaScript コードは正しく機能し、関数定義を囲む余分な括弧のペアなしで文字列 "foo" を警告します。
var a = function() {
alert('foo')
}()
上記コードの JSFiddle URL: http://jsfiddle.net/qLKsq/
このコードは、関数定義を囲む余分な括弧のペアがなくても機能するのはなぜですか?