Qraft(クラフト) 資格・学習クイズアプリ

JavaScript入門 練習問題 35:構文:即時実行関数式(IIFE)の特徴

JavaScriptのIIFE(即時実行関数式)に関する説明として、正しいものはどれですか?

  1. 関数を定義すると同時に呼び出す構文であり、変数のスコープを限定してグローバル汚染を防ぐ目的で使われる
  2. 関数の実行を一定時間だけ遅らせるための構文であり、setTimeoutと同じ非同期処理を実現する
  3. 複数の関数を鎖のようにつなげて順番に実行する構文であり、非同期処理の流れを制御する目的で使われる
  4. 関数に渡せる引数の個数を制限する構文であり、余分な引数を渡すと例外が発生する仕組みになっている
  5. クラスのインスタンスを生成すると同時にメソッドを実行する構文であり、コンストラクタの代わりに使われる

Qraftユーザーの成績:難易度 Cランク(レーティング1153)・正答率 58%(7/12回正解)
レーティングは解いた人の実力と正誤から算出する難しさ(初期値1200)。ランクはその全問題中の順位(S+が最難関、F-が最易)

正解と解説を見る
正解:関数を定義すると同時に呼び出す構文であり、変数のスコープを限定してグローバル汚染を防ぐ目的で使われる

IIFE(Immediately Invoked Function Expression=即時実行関数式)は、関数を定義した直後にその場で呼び出す構文であり、内部で宣言した変数が外部のスコープに漏れないようにする目的でよく使われます。

【正解の理由】
関数式を丸括弧で囲んですぐに呼び出す形にすることで、関数内の変数や処理が独立したスコープに閉じ込められ、グローバル変数の汚染を防ぐことができます。

【不正解の理由】
• 「実行を一定時間だけ遅らせる」という説明:これはsetTimeoutの働きであり、IIFEは定義と同時に即座に実行される構文である
• 「複数の関数を鎖のようにつなげる」という説明:これはPromiseのメソッドチェーンなどの仕組みであり、IIFE自体には関数を連結する機能はない
• 「引数の個数を制限する」という説明:IIFEには引数の数を制限する機能はなく、通常の関数と同様に任意の数の引数を渡せる
• 「コンストラクタの代わりに使われる」という説明:IIFEはクラスのインスタンス生成とは無関係であり、newキーワードを伴う処理とは異なる

← 前の問題問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)