函数 typeof 的不足: 而可以判断出简单的数据类型,单对发杂的数据类型判断比较模糊
比如 :数组对象 、时间对象、正则对象、Math对象返回的都是 object
解决方法 利用object对象 prototype 的tostring方法返回一本身类型的字符串
let str = 'string'
let num = 123
let arr = [1,2,3]
let date = new Date()
let math = Math.floor(12.654)
let type1 = typeof(str)// string
let type2 = typeof(num)// number
let type3 = typeof(arr)// object
let type4 = dataType(arr) //array
let type5 = dataType(date) //date
let type6 = dataType(math) //number
// object对象的 prototype 的tostring方法都会返回一个表示本身类型的字符串
function dataType(obj) {
let o = {}
return o.toString.call(obj).slice(8,-1).toLowerCase()
}