JavaScriptでは関数を変数・定数に入れることができます。関数を代入するとFunction型になります。
function pow2(val) { return val*val } const fn = pow2 console.log(typeof fn) console.log(fn(4))
無名関数
Function型は関数を作成せずに代入時に直接記載することができます。これを無名関数と呼びます。
const fn = function (val) { return val * val } console.log(fn(4))
またはアロー関数
const fn = (val) => { return val * val } console.log(fn(4))
Function型の使い方の例
コールバック
コールバックは呼び出した先から、呼び返してもらうときに使います。
setTimeout(() => { console.log("AAA") }, 5000)
評価関数
評価関数はアルゴリズムの実装の際にどういう評価で実行するのか?を指定するときに使います。
const array = ['Suzuki', 'Yamada', 'Sato', 'Ito', 'Tanaka', 'Takahashi'] const result = array.filter((name) => { return name.indexOf('o') >= 0 }) console.log(result)
抽象化して実行する
const arg1 = Number(process.argv[2]) const type = process.argv[3] const arg2 = Number(process.argv[4]) const calc = { '+': (a,b) => { return a + b }, '-': (a,b) => { return a - b }, '*': (a,b) => { return a * b }, '/': (a,b) => { return a / b } } console.log(calc[type](arg1, arg2))
Function型は理解するのに時間がかかると思いますが、これを極めるとプログラミングがとても楽しく美しく記載できるようになります。少しずつでいいので慣れていきましょう。