JavaScript 関数かどうかをチェックする場合は typeof func === ‘function’

JavaScript では関数の引数に関数を渡せることが強力です。

例えば、以下のような関数をつくることができます。

function hoge(func, str) {
  func(str);
}

hoge は引数 func と str を受け取り、func を実行します。

ここで func は関数ではなくてはいけないので、事前にチェックする必要があります。

関数かどうかは typeof func === 'function’ で判定できます。

以下は func が関数ではない場合は例外を投げます。

function hoge(func, str) {
  if (typeof func !== 'function') {
    throw new TypeError('Expected a function')
  }
  func(str);
}