typeof的返回值类型一共可分为七种: 1.string类型
typeof(“abc”)
2.number类型
typeof(20); typeof(NaN); typeof(Infinity)
3.boolean类型
typeof(true); typeof(false)
4.undefined类型
typeof(undefined); typeof(a);//不存在的变量
5.object类型
对象,数组,null返回object typeof(null); typeof(window);
6.function
typeof(Array); typeof(Date);
7.symbol
typeof Symbol() // ES6提供的新的类型
instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。 使用规则:object instanceof constructor 要求前面是个对象,后面是一个构造函数。而且返回的是布尔型的,不是true就是false。
常用使用:由于typeof只能判断类型,所以,数组和对象返回的都是object,这时就需要使用instanceof来判断是否是 [] instanceof Array //true
所以,我们可以通过这两种方式封装一个函数专门进行类型判断:
function getDataType(obj) { if(obj === null){ return "null"; }else if(typeof obj === "object"){ if(obj instanceof Array){ return "array"; }else{ return "object"; } }else{ return typeof obj; } }