1. 使用constructor
constructor是Object类型的原型属性,它能够返回当前对象的构造器(类型函数)。利用该属性,可以检测复合类型数据的类型,如对象,数组和函数等。
【示例1】下面代码可以检测对象和数组的类型,以此可以过滤对象、数组。
var o = {}; var a = []; if (o.constructor == Object){ console.log("o是对象") } if (a.constructor == Array){ console.log("a是数组“) }
结合typeof运算符和constuctor属性,可以检测不同的数据类型。以下是常见的数据类型检测结果。
值(value) | typeof value(表达式返回值) | value.constructor(构建函数的属性值) |
var value =1 | “number" | Number |
var value ="a" | "string" | String |
var value | "boolean" | Boolean |
var value = {} | "object" | Object |
var value = new Object() | "object" | Object |
var value = [] | "object" | Array |
var value = new Array() | "object" | Array |
var value = function90{} | "function" | Function |
function className(){}; var value = new className(); |
"object" | className |