一. typeof的返回值类型
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提供的新的类型
二.typeof与instanceof的区别
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;
}
}