はじまり

リサちゃん
JavaScriptでオブジェクトの型を判別したい・・・

135ml
じゃあ、Object.prototype.toString.call()を使ってみませんか。

リサちゃん
どれどれ・・・
型の判別に使うメソッド
今回、型の判別に使うメソッドは、こちらです。
使用するメソッド
Object.prototype.toString.call()
例えば、以下のように使うと、以下のような返り値が取得できます。返り値は文字列で返ってきます。
使用例と返り値
let a = "test"
type_a = Object.prototype.toString.call(a)
console.log(type_a)
# [object String]
型のまとめ
以下が、型と例をまとめた表になります。
| 型 | 具体例 |
|---|---|
| Boolean | true |
| String | “test”、’hogehoge’ |
| Number | 11、34.5 |
| Array | [“1”, 1]、[“ho”, “ge”] |
| Object | {test: “abc”}, {test: 234} |
| Function | function objTestFunc(){return “test”;} |
| Null | null |
| Undefined | 「let hoge;」だけして変数を入れなかった場合。 |
| Set | new Set([1, 2]) |
| Symbol | Symbol(“test”) |
| Error | new TypeError() |
| BigInt | 2n ** 53n |
これを使った型判別するための関数
このObject.prototype.toString.call()を利用した関数を作りましたので、よければ使ってみてください。例外処理でよく使っています。
/**
* @param {any} obj
* @param {string} type
* @return {boolean}
*/
function isObjectType(obj, type){
let objectTypeInfo = Object.prototype.toString.call(type);
if(objectTypeInfo.indexOf("String") === -1){
throw new TypeError("type must be String type.")
}
objectTypeInfo = Object.prototype.toString.call(obj);
if(objectTypeInfo.indexOf(type) === -1){
return false;
}
return true;
}
おしまい

135ml
まあ、これで判別してみてください。

リサちゃん
あざっした!
以上になります!


コメント