js 监测数据类型有很多种
typeof
instanceof
typeof
监测数据类型不太严谨 因为遇到 数组和null
都会返回 ‘object’
const aa = null
const bb = [1,2,3,4]
console.log(typeof aa) => 'Object'
console.log(typeof bb) => 'Object'
instanceof
监测相对来说严谨了许多 但是用法也比较繁琐
const aa = null
const bb = [1,2,3,4]
console.log(bb instanceof Array) => true
console.log(aa instanceof null) => 报错
因为
const bb = [1,2,3,4]
const cc = 12
console.log(Object.prototype.toString.call(bb)) => "[object Array]"
console.log(Object.prototype.toString.call(cc)) => "[object Number]"
由以上可以 封装一个监测数据对象的方法
const aa = null
const bb = [1,2,3,4]
const cc = 12
const dd = undefined
function typeClass(v){
if(v===null) return 'is Null';
if(v===undefined) return 'is undefined'
return Object.prototype.toString.call(v)
}
console.log(typeClass(aa)) => 'is null'
console.log(typeClass(bb)) => 'Array'
console.log(typeClass(cc)) => 'Number'
console.log(typeClass(dd)) => 'is undefined'