JavaScript 中如何判断一个值是否是数组类型
instance of
const arr = []
arr instance of Array //true
Array.isArray
const arr = []
Array.isArray(arr) //true
const obj = {}
Array.isArray(obj) //false
Object.prototype.isPrototypeOf
使用 Object 的原型方法 isPrototypeOf
,判断两个对象的原型是否一样,isPrototypeOf()
方法用于测试一个对象是否存在于另一个对象的原型链上。
const arr = []
Object.prototype.isPrototypeOf(arr, Array.prototype) //true
Object.getPrototypeOf
Object.getPrototypeOf()
方法返回指定对象的原型(内部 [[Prototype]] 属性的值)。
const arr = []
Object.getPrototypeOf(arr) === Array.prototype //true
Object.prototype.toString
借用 Object 原型的 call
或者 apply
方法,调用 toString
是否为 [object Array]
const arr = []
Object.prototype.toString.call(arr) === '[object Array]' //true
const obj = {}
Object.prototype.toString.call(obj) //'[object Object]'