Object.prototype.toString
用来判断类型再合适不过,借用它我们几乎可以判断所有类型的数据:
function isType(data, type) {
const typeObj = {
"[object String]": "string",
"[object Number]": "number",
"[object Boolean]": "boolean",
"[object Null]": "null",
"[object Undefined]": "undefined",
"[object Object]": "object",
"[object Array]": "array",
"[object Function]": "function",
"[object Date]": "date",
"[object RegExp]": "regExp",
"[object Map]": "map",
"[object Set]": "set",
"[object HTMLDivElement]": "dom",
"[object WeakMap]": "weakMap",
"[object Window]": "window",
"[object Error]": "error",
"[object Arguments]": "arguments"
};
let name = Object.prototype.toString.call(data);
let typeName = typeObj[name] || "未知类型";
return typeName === type;
}
console.log(
isType({}, "object"),
isType([], "array"),
isType(new Date(), "object"),
isType(new Date(), "date")
);