ここへジャンプ:

関数 は、他のコードや自分自身、関数を参照する 変数 から呼ばれるコード断片です。関数が呼ばれると、引数 が関数への入力として渡され、次に関数は任意で出力を戻します。JavaScript における関数は、オブジェクト でもあります。

関数名は、関数宣言の一部または関数式で宣言される 識別子 です。関数名の スコープ は、関数名が宣言か式かによって決まります。

さまざまな関数の種類

無名関数 とは、関数名のない関数です:

function () {};
// or using the ECMAScript 2015 arrow notation
() => {};

 

名前付き関数 とは、関数名のある関数です:

function foo() {};
// or using the ECMAScript 2015 arrow notation
const foo = () => {};

内部関数 は、ほかの関数内に書かれた関数です (この例では square)。外部関数 は、関数を含む関数です (この例では addSquares):

function addSquares(a,b) {
   function square(x) {
      return x * x;
   }
   return square(a) + square(b);
};
//Using ECMAScript 2015 arrow notation
const addSquares = (a,b) => {
   const square = x => x*x;
   return square(a) + square(b);
};

再帰的関数 は自身を呼び出す関数です。再帰 を参照してください。

function loop(x) {
   if (x >= 10)
      return;
   loop(x + 1);
};
//Using ECMAScript 2015 arrow notation
const loop = x => {
   if (x >= 10)
      return;
   loop(x + 1);
};

即時関数 (IIFE; Immediately Invoked Function Expressions) は、関数がブラウザーのコンパイラーに読み込まれた直後に呼び出される関数です。IIFE は、関数宣言の末尾に追加の括弧 "()" があるかどうかで識別できます。

// Error (https://en.wikipedia.org/wiki/Immediately-invoked_function_expression)
/*
​function foo() { 
    console.log('Hello Foo'); 
}();
*/

(function foo() {
    console.log("Hello Foo");
}());

(function food() {
    console.log("Hello Food");
})();

IIFE の詳細を知りたい方は、次の Wikipedia のページを確認してください: Immediately Invoked Function Expression

詳細情報

技術リファレンス

ドキュメントのタグと貢献者

このページの貢献者: Uemmra3, Marsf
最終更新者: Uemmra3,