generated at
JavaScript関数あれこれ
まだあるが、関数の書き方が色々ある。
js
var func = alert("a"); // アラートが実行される (function(){alert("a")}) // 関数リテラル。実行されない (function(){alert("a")})() // 即時関数 func = (function(){alert("a")}) // 変数に関数リテラルが渡される func // 実行されない func() // 実行される function(){alert("a")} // SyntaxError !function(){alert("a")} // false !function(){alert("a")}() // 即時関数 (()=>alert("a"))() // アロー関数の即時関数 function func() { // 関数宣言 alert("a") } func = new Function('alert("a")')

楽なのは、関数リテラルという言葉を覚えること。
非プログラマ私の概念把握からすると、即時関数というのは、関数リテラルに () という演算子を付けたものである。すなわち、関数リテラルはオペランドであるという認識。

雑なメモ
関数宣言ホイスト(巻き上げ)してくれる
「関数を実行する」のか「関数リテラルを渡すのか」という区別がある。
困ったらとりあえずアロー関数にしてみる
即時関数はスコープのためにある