JavaScript関数について読んで、次のように定義した直後に関数を呼び出すことができることを理解しています:
al = function(string){
alert(string)
}("test");
ただし、空の括弧で同じことを行うことはできません。
al = function(){
alert("test")
}();
代わりに、関数を関数式に変換する必要があります。
al = (function(){
alert("test")
})();
これはなぜですか? また、最初のコード例がこの変換なしで正しく機能するのはなぜですか?