检查数据类型,也是必备的一个技能了,在以前的文章中也讲过,如何进行数据的判断,今天我们在来回去一下吧。
一.typeof
说明:这个只能检查一些简单的数据类型。
代码:
let a = 10
let b = '10'
console.log(typeof a);
console.log(typeof b);
view:
接下来我们检查对象和数组
代码:
let a = [10, 20, 30, 40, 50]
let b = {
name: '张三',
age: 20
}
console.log(typeof a);
console.log(typeof b);
view:
结论:typeof只能检查一些简单的数据类型,复杂的数据类型无法检测出来。
二.instanceof
代码:
const arr = []
const obj = {}
console.log(arr instanceof Object) // true
console.log(obj instanceof Object) // true
view:
可以看出也是不能准确地检查数据类型的。
三:isArray
只能区分是不是数组,是什么呢?不知道
代码:
const a = []
console.log(Array.isArray(a));
view:
代码:
const a = 10
console.log(Array.isArray(a));
view:
四.Object.prototype.toString.call()
这也是最终的检测数据类型的方案,可以检测任意的数据类型。
代码:
let a = 10 //number
let b = '10' //String
let c = null //null
let d = undefined //underfined
let e = true //boolean
let f = [] //Arrway
let t = {} //object
let q = function fn() {} //function
console.log(Object.prototype.toString.call(a));
console.log(Object.prototype.toString.call(b));
console.log(Object.prototype.toString.call(c));
console.log(Object.prototype.toString.call(d));
console.log(Object.prototype.toString.call(e));
console.log(Object.prototype.toString.call(f));
console.log(Object.prototype.toString.call(t));
console.log(Object.prototype.toString.call(q));
view:
看一看出准确地检查到了任意类型的数据,今天的分享到这里大家一键三连哦