1、 typeof(obj) 不是很准确, 比如null的结果也是 object,数组的结果也是 object,这个一般检测基本数据类型,也就是(Undefined、Null、Boolean、Number和String)
var a = 1,
var b = '2'
console.log(typeof(a))//number
console.log(typeof(b))//string
2、Object.prototype.toString.call(obj) obj为要检查对象 可以用来准确地检测所有数据类型
应用场景:做判断,筛选
案例:
arr=["123",123,"456"]
arr.filter(function(obj){
return Object.prototype.toString.call(obj) === "[object String]"
})//["123","456"]
3、instanceof 用来检测引用数据类型(Object、Array、Function、Data等)
语法: obj instanceof 复杂数据类型 //返回布尔值
function add(){}
add instanceof Function//true
var obj = {}
obj instanceof Object//true
[] instanceof Array//true