💬

ラムダ関数(無名関数, 匿名関数)

2024/10/14に公開

【ラムダ関数の特徴】

  • 他の関数に入出力として渡すことができる関数
  • 名前がない
  • その場で作成される関数

【通常の関数】

test.js
function triangleArea(width, height) {
   return width * height / 2;
}

console.log(triangleArea(3,5));
// 7.5

【ラムダ関数】

パターン1:関数名をなくす

test.js
let triangleAreaLambda1 = function (width, height) {return width * height / 2;};

console.log(triangleAreaLambda1(3,5));
// 7.5

パターン2:アロー関数式 ブロック文体 (block body)

  • "function" という語を削除し、代わりに引数と本体の開始中括弧の間に矢印を配置
test.js
let triangleAreaLambda2 = (width, height) => {return width * height / 2;};

console.log(triangleAreaLambda2(3,5));
// 7.5

パターン3:アロー関数式 簡潔文体 (concise body)

  • 関数の処理内容が式1つの場合、{}とreturnを省略可
  • ただしその場合は両方とも省略すること
test.js
let triangleAreaLambda3 = (width, height) =>  width * height / 2;

console.log(triangleAreaLambda3(3,5));
// 7.5

パターン4:引数が一つの場合は()を省略可

test.js
a => a + 100;

【参考】

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/function

Discussion