JavaScriptの型判別
複雑な言語仕様のせいで、判別したい型によって方法が違うのでまとめる
結論
それぞれの方法で検証した結果は必要なく、方法だけ知りたいという人向け
比較演算子を用いた式のみを記述する
number(数値)
string(文字列)
boolean(真偽値)
ES5より前はこれを使う
check.js(!Array.isArray(値) && 値 instanceof Object)
配列と区別する必要がない場合は (値 instanceof Object)
のみで十分
関数とアロー関数を区別する方法はわからなかった
型判別の構文が返す値
ここからは細かい検証結果をまとめたもの
typeof型 | 戻り値 |
undefined | "undefined" |
null | "object" |
number | "number" |
string | "string" |
boolean | "boolean" |
配列 | "object" |
連想配列 | "object" |
関数 | "function" |
アロー関数 | "function" |
シンボル | "symbol" |
使い方
しかし、 "object"
と分類されてしまう型の判別ができない
前項の
typeofにて判別できなかった
"object"
に属する型について検証する
instanceof型 | Object | Array |
null | false | false |
配列 | true | true |
連想配列 | true | false |
使い方
instanceof型 instanceof 検証する型
問題は配列と連想配列を判別する方法だが、 値 instanceof Array
が true
になるか false
になるかで判別することが出来た