首页 > 代码库 > 用Object.prototype.toString()来检测对象的类型

用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]
括号里的参数可为任意具体数据

用Object.prototype.toString()来检测对象的类型