このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

IIFE (即時実行関数式)

IIFE (Immediately Invoked Function Expression; 即時実行関数式) は、定義されるとすぐに実行される JavaScript関数のイディオムです。これは「自己実行無名関数」としても知られています。IIFE という名前は Ben Alman のブログで付けられました。

js
// 標準的な IIFE
(function () {
  // 文…
})();

// アロー関数形式
(() => {
  // 文…
})();

// 非同期 IIFE
(async () => {
  // 文…
})();

これは 2 つの重要な部分を含んでいます。

  1. 関数式。これは通常、正しく構文解析するために中括弧で囲む必要があります。
  2. その関数式を直ちに呼び出す。引数を指定することもありますが、引数なしの IIFE の方が一般的です。

IIFE は、単一の式が要求される場所で、独自のスコープ内で任意の多数の文を実行する(場合によって値を返す)ために使用される一般的なパターンです。これらはカンマ演算子と似ていますが、カンマ演算子は複数の式を実行することしかできず、ローカル変数や制御文を使用する方法が提供されていないため、IIFE のほうがはるかに強力です。

IIFE の主な用途には、次のようなものがあります。

  • 新しいスコープを作成することにより、グローバル名前空間の汚染を防ぐ。
  • 非同期でないコンテキストで await を使用するために、新しい非同期コンテキストを作成する。
  • 複数の文を単一の式として使用するなど、複雑なロジックを用いた値の計算。

コードの例については、functionおよび async functionのリファレンスページをご覧ください。

関連情報