はじまり
リサちゃん
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
まあ、これで判別してみてください。
リサちゃん
あざっした!
以上になります!
コメント