JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptの自己実行関数(IIFE)の目的とは?使い方をわかりやすく解説

自己実行関数の主な目的は、その関数内で宣言された変数が関数の内部でのみ有効になるという点にあります。

自己実行関数の中で宣言された変数は、デフォルトでは外部からアクセスできず、関数内部のコードからのみ参照可能です。これにより、グローバルスコープの汚染を防ぎ、他のコードとの変数名の衝突を回避できます。

このような関数は「即時実行関数式(IIFE:Immediately Invoked Function Expression)」と呼ばれ、定義された瞬間に自動的に実行される関数です。

基本の構文

自己実行関数の基本的な構文は以下のとおりです。

(function() {
    // ここにコードを書く
})();

上記のコードにおいて、最初の括弧のペアは、括弧内のコードを式(expression)として扱うためのものです。

function(){...}

そして、次に続く2番目の括弧のペアが実際の呼び出しを担当します。この部分により、先ほどの式から生成された関数がその場で実行されます。

自己実行関数を使うメリット

1. グローバル名前空間を汚染しない

関数内で宣言された変数や関数はローカルスコープに閉じ込められるため、windowオブジェクトなどグローバルな領域に不要な名前が追加されません。

2. 変数名の衝突を防げる

複数のライブラリやスクリプトを読み込む際にも、同じ変数名が競合するリスクを大幅に減らせます。

3. 初期化処理に最適

ページ読み込み時に一度だけ実行したい初期化処理などを、安全にカプセル化して記述できます。

まとめ

自己実行関数(IIFE)は、「定義と同時に実行される関数」であり、変数を関数スコープ内に閉じ込めることで、安全で衝突の少ないコードを実現するための重要なテクニックです。特にモジュール機構が普及する以前のJavaScriptでは、広く活用されてきました。

  1. JavaScriptの無名関数(匿名関数)とは?基本の書き方と使い方をわかりやすく解説

    無名関数(匿名関数)とはJavaScriptには、関数を定義する方法として「関数宣言」と「関数式」があります。このうち関数式は、関数宣言とほぼ同じ構文で記述でき、さらに次の2種類に分けられます。名前付き関数式:関数に名前が付けられているもの(コールスタック上で名前が表示されるため、デバッグ時に便利です)無名関数(匿名関数):関数に名前を付けずに定義するもの本記事では、後者の「無名関数」について、基本的な書き方と使い方を解説します。無名関数の基本的な書き方無名関数は、functionキーワードで関数を定義し、そのまま変数に代入する形で記述します。関数名を指定しない点が最大の特徴です。var my

  2. MySQLのTRIM()関数とは?文字列から接頭辞・接尾辞を削除する方法を解説

    MySQLのTRIM()関数は、文字列から特定の接頭辞(プレフィックス)や接尾辞(サフィックス)、あるいはその両方を取り除くために使用される関数です。不要な記号や余分な文字を文字列の先頭・末尾から除去したい場合に非常に便利です。TRIM()関数の動作は、以下の構文を見るとよく理解できます。構文TRIM([{BOTH | LEADING | TRAILING} [str_to_remove] FROM] string)各引数の意味は次のとおりです。BOTH:文字列の左側(先頭)と右側(末尾)の両方から指定した文字列を削除します。LEADING:先頭(左側)に付いている文字列のみを削除します。TR