判断是否为数组的6种方法
2022-06-19 本文已影响0人
前端末晨曦吖
数组是属于Object类型的,也就是引用类型,所以不能使用typeof判断其具体类型
instanceof 运算符 , 主要是判断某个实例(arr)是否属于某个对象
let arr = []
console.log(arr instanceof Array) //true
constructor 判断实例(arr)的构造函数是否等于某个对象
let arr = []
console.log(arr.constructor == Array) //true
isArray 判断是不是数组
let arr = []
console.log(Array.isArray(arr)) //true
Object.getPrototypeOf() 方法返回指定对象的原型,然后和Array的原型对比
let arr = []
console.log(Object.getPrototypeOf(arr) == Array.prototype) //true
Array原型链上的isPrototypeof
Array.prototype表示Array的构造函数的原型
isPrototypeof()方法可以判断一个对象是否存在另一个对象的原型链上
let arr = []
console.log(Array.prototype.isPrototypeof(arr)) //true
Object.prototype.toString.call() 把对象转为字符串和一个已知的对象进行对比
let arr = []
console.log(Object.prototype.toString.call(arr) == '[object Array]') //true