用Object.prototype.toString()来检测对象的类型
昨天遇到要检测数据类型的情况,一般可以用typeof,但只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种。
对于数组、函数、对象来说,其关系错综复杂,使用 typeof 都会统一返回 “object” 字符串。
不过还有种方法貌似逼格有点高,那就是Object.prototype.toString()。
具体如下
Object.prototype.toString.call(
new
Date);
// [object Date]
Object.prototype.toString.call(
new
String);
// [object String]
Object.prototype.toString.call(Math);
// [object Math]
Object.prototype.toString.call(undefined);
// [object Undefined]
Object.prototype.toString.call(
null
);
// [object Null]
括号里的参数可为任意具体数据