JavaScript

function(関数式)

 編集:2022.08.23 by T.A.

式の中で関数を定義する。

myFunc = function [name]([param1[, param2[, …paramN]]]) {
 処理
};
myFunc
name 省略可。関数名。name は関数本体のみのローカルです。

省略した場合は、関数は無名になります。

paramn 関数に渡される引数の名前です。
処理 関数の本体である文。

関数式は関数宣言とよく似ており、ほとんど同じ書式でもあります(詳しくは function 文を参照してください)。

関数式と関数宣言の主な相違点は、関数名です。関数式では、無名関数を生成するために、関数名を省略できます。関数式は、定義するとすぐに実行する IIFE(即時実行関数)として使用できます。詳細については、関数の章を参照してください。

無名な関数:

var x = function(y) {
   return y * y;
};
D=x(10);	//=100

名前付き関数:

let math = {
  'factit': function Func(n) {
    alert(n);
    if (n <= 1) {
      return 1;
    }
    return n * Func(n - 1);
  }
};
D=math.factit(3);	//=6。表示:3、2、1。

関数式の巻き上げ:

//コンソールにて
console.log(notHoisted)	// undefined
// 変数名は巻き上げが行われますが、定義は行われません。そのため undefined になります。

notHoisted();	// TypeError: notHoisted is not a function

var notHoisted = function() {
   console.log('bar');
};

関連

ES2015 からはアロー関数式も使えます。

関数宣言


テスト