通过typeof(value)方法可以判断当前变量的数据类型。
var a = {id:'1',name:'对象'};
var b = [1,2];
var c = new Date();
typeof(a); //object
typeof(b); //object
typeof(c); //object
对象、数组和日期的结果都为object,不能将typeof作为判断其类型的依据。
每个变量都带有构造属性,用constructor函数可以获得。
a、b、c三个变量的构造函数分别为:
①a.constructor; //Object() {...}
②b.constructor; //Array() {...}
③c.contsructor; //Date() {...}
实例:
function diffObject(value,type){
return value.constructor.toString().indexOf(type) != -1;
}
console.log(diffObject(a,'Object')); //true
console.log(diffObject(a,'Array')); //false
console.log(diffObject(b,'Array')); //true
console.log(diffObject(c,'Date')); //true
扩展知识:
javascript包含5种不同的数据类型。
- 数字number
- 字符串string
- 布尔boolean
- 对象object
- 函数function
其中对象类型还分:
- Object
- Array
- Date