判断内置对象
- 代码
let obj = {
id: 1001,
name : 'test'
};
let arr = [
'hello',
'world',
];
let date = new Date();
- 利用对象的构造函数的 name 属性来判断对象类型
console.log(obj.constructor.name); // Object
console.log(arr.constructor.name); // Array
console.log(date.constructor.name); // Date
- 借调
Object
的toString
方法
console.log(Object.prototype.toString.call(date)); // [object Date]
console.log(Object.prototype.toString.call(obj)); // [object Object]
console.log(Object.prototype.toString.call(arr)); // [object Array]
console.log(Object.prototype.toString.call("1")); // [object String]
console.log(Object.prototype.toString.call(10)); // [object Number]
console.log(Object.prototype.toString.call(true)); // [object Boolean]
判断自定义对象
- 代码
function Dog(name) {
this.name = name;
}
function Cat(name) {
this.name = name;
}
function Person(name) {
this.name = name;
}
let p = new Person("person");
let c = new Cat("cat");
let d = new Dog("dog");
- 利用对象的构造函数的 name 属性来判断对象类型
console.log(p.constructor.name); // Person
console.log(c.constructor.name); // Cat
console.log(d.constructor.name); // Dog
- 利用
instanceof
运算符
console.log(p instanceof Person); // true
console.log(c instanceof Person); // false
console.log(d instanceof Person); // false
console.log(p instanceof Object); // true
console.log(d instanceof Object); // true
console.log(c instanceof Object); // true
网友评论