generated at
JavaScriptの型判別
JavaScript型判別をする方法
複雑な言語仕様のせいで、判別したい型によって方法が違うのでまとめる

結論
それぞれの方法で検証した結果は必要なく、方法だけ知りたいという人向け
比較演算子を用いた式のみを記述する
実際にif文で使用する場合は以下のように記述する
checkUndefined.js
if (値 === undefined) { // 値がundefinedだった場合の処理 }

check.js
(値 === undefined)

check.js
(値 === null)

number(数値)
check.js
(typeof 値 === "number")

string(文字列)
check.js
(typeof 値 === "string")

boolean(真偽値)
check.js
(typeof 値 === "boolean")

check.js
(Array.isArray(値))

ES5より前はこれを使う
check.js
(値 instanceof Array)

check.js
(!Array.isArray(値) && 値 instanceof Object)

配列と区別する必要がない場合は (値 instanceof Object) のみで十分

check.js
(typeof 値 === "function")

関数とアロー関数を区別する方法はわからなかった

check.js
(typeof 値 === "symbol")

型判別の構文が返す値
ここからは細かい検証結果をまとめたもの

typeof
戻り値
undefined"undefined"
null"object"
number"number"
string"string"
boolean"boolean"
配列"object"
連想配列"object"
関数"function"
アロー関数"function"
シンボル"symbol"

使い方
typeof.js
typeof 値 === 型の名前の文字列

この方法では大抵のイミュータブル型の判別が可能
しかし、 "object" と分類されてしまう型の判別ができない
null 値 === null で判別可能


前項のtypeofにて判別できなかった "object" に属する型について検証する

instanceof
ObjectArray
nullfalsefalse
配列truetrue
連想配列truefalse

使い方
instanceof
型 instanceof 検証する型

問題は配列と連想配列を判別する方法だが、 値 instanceof Array true になるか false になるかで判別することが出来た