即時実行関数式
code:IIFE.js
(() => { /* 処理 */ })();
// or
(function () { /* 処理 */ })();
code:IIFE_promise.js
(async () => { /* 処理 */ })();
top-level awaitで実行するときはawait (async () => { /* 処理 */ })();とする
JavaScriptにおける即座に実行される無名関数のこと
英語ではIIFE (Immediately Invoked Function Expression)
関数をカッコ()でカコった後、後ろにカッコ()をつけると即座に実行できる
引数を渡したいなら以下のように書く(あんまし意味ないけれど)
code:IIFE_withArgs.js
((value) => { /* 処理 */ })("引数");
参考
IIFE (即時実行関数式) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN
カッコが多すぎる上にそれぞれのカッコでの役割が違うあたりが初見殺しなので、JavaScriptのヤバさを伝える時によく使っているMijinko_SD.icon
中に高階関数を入れておくと更にヤバみが出るSummer498.icon
((x)=>(y)=>x*x+y*y)(0.2)(0.8))