JavaScriptでオブジェクトの型を判別するのにtypeof演算子使うとツラいよね – Qiita
で is(‘型’, 値) という関数が便利なのだけど typeof と比較して10倍ぐらい遅い。
なので、それなりに速度を上げてarrayやnull(とついでにNaN)も判定する関数を考えた。
typeofでなくてtypeOf()です。
ES6が使えない場合は Number.isNaN がダメなので typeof val === ‘number’ && isNaN(val) とする必要があります。