JavaScript オブジェクトの型を取得するライブラリ
JavaScript オブジェクトの型の名前を取得する
typeof 演算子
最も簡単な方法は、typeof
演算子を使用することです。これは、オブジェクトの型を文字列で返します。
const obj = { name: "John Doe", age: 30 };
console.log(typeof obj); // "object"
ただし、typeof
演算子はオブジェクトの詳細な型情報を提供しません。例えば、Date
オブジェクトと単純なオブジェクトはどちらも "object"
となります。
instanceof 演算子
特定の型かどうかを確認するには、instanceof
演算子を使用できます。
const obj = new Date();
console.log(obj instanceof Date); // true
console.log(obj instanceof Object); // true
この例では、obj
が Date
オブジェクトであることを確認しています。instanceof
演算子は、オブジェクトのプロトタイプチェーンを遡って、指定された型のオブジェクトかどうかを確認します。
コンストラクタ関数
オブジェクトのコンストラクタ関数を取得するには、constructor
プロパティを使用できます。
const obj = new Date();
console.log(obj.constructor); // [Function: Date]
この例では、obj
のコンストラクタ関数は Date
であることが分かります。
クラスを使ってオブジェクトを作成した場合、obj.constructor.name
でクラス名を取得できます。
class Person {
constructor(name) {
this.name = name;
}
}
const person = new Person("John Doe");
console.log(person.constructor.name); // "Person"
その他のライブラリ
より詳細な型情報を取得したい場合は、Lodash などのライブラリを使用できます。
const _ = require("lodash");
const obj = { name: "John Doe", age: 30 };
console.log(_.getObjectType(obj)); // "object"
console.log(_.isDate(obj)); // false
console.log(_.isPlainObject(obj)); // true
- オブジェクトの単純な型を知りたい場合は、
typeof
演算子を使用します。 - クラス名を知りたい場合は、
obj.constructor.name
を使用します。
// オブジェクトの型を取得する
const obj = { name: "John Doe", age: 30 };
// typeof 演算子
console.log(typeof obj); // "object"
// instanceof 演算子
console.log(obj instanceof Object); // true
// constructor プロパティ
console.log(obj.constructor); // [Function: Object]
// クラス名
class Person {
constructor(name) {
this.name = name;
}
}
const person = new Person("John Doe");
console.log(person.constructor.name); // "Person"
// Lodash ライブラリ
const _ = require("lodash");
console.log(_.getObjectType(obj)); // "object"
console.log(_.isDate(obj)); // false
console.log(_.isPlainObject(obj)); // true
出力
object
true
[Function: Object]
Person
object
false
true
オブジェクトの型を取得するその他の方法
Object.prototype.toString.call()
const obj = { name: "John Doe", age: 30 };
console.log(Object.prototype.toString.call(obj)); // "[object Object]"
この方法は、typeof
演算子と似ていますが、より詳細な情報を提供します。
自作関数
特定のニーズに合わせて、独自の関数を作成することができます。
function getType(obj) {
if (obj === null) {
return "null";
}
if (typeof obj === "undefined") {
return "undefined";
}
if (Array.isArray(obj)) {
return "array";
}
if (obj instanceof Date) {
return "date";
}
// ...
return typeof obj;
}
const obj = { name: "John Doe", age: 30 };
console.log(getType(obj)); // "object"
この例では、getType()
関数は、オブジェクトの型に基づいてさまざまな値を返します。
第三者ライブラリ
Lodash 以外にも、オブジェクトの型を取得するためのライブラリが多数存在します。
これらのライブラリは、さまざまな型を検証するための便利な機能を提供します。
オブジェクトの型を取得するには、さまざまな方法があります。どの方法を使用するかは、必要とする情報と状況によって異なります。
javascript