js如何判断是否是{}的类型?因为{}是没有toString()的,这样输出就成了[Object Object]了
Object.prototype.toString.call()判断对象类型,输出是[Object Object]就是对象,typeof那些是判断不了的
instanceof 来判断是不是一个对象
1. typeof;
2.Object.prototype.toString.call;
3.instanceof;
4.constructor;
typeof 用来判断基本类型
instanceof 用来判断引用类型。
a = {} 空对象 属于引用类型,除 a instaceof Object 外,再判断下是否为空就行了 Object.keys()
if (a instanceof Object && !Object.keys(a).length) { console.log("{}"); };
isArray(obj) {
return obj && typeof obj == "object" && obj.constructor == Array;
}
isString(str) {
return str && typeof str == "string" && str.constructor == String;
}
// isNumber(obj) {
// return typeof obj == "number" && obj.constructor == Number;
// }
isDate(obj) {
return obj && typeof obj == "object" && obj.constructor == Date;
}
isObject(obj) {
return obj && typeof obj == "object" && obj.constructor == Object;
}
送你了
typeof instanceof 只能知道是个Object,不能保证一定是{},可能是数组、方法等其他的