判断对象的方法
- Object.prototype.toString.call(obj) === ‘[object Object]’
推荐指数 :五颗星 - obj instanceof Object
推荐指数 :四颗星 - typeof obj === Object
推荐指数 :三颗星
注意:null也是一个对象 typeof(null) === Object
- obj.constructor === Object
推荐指数 :二颗星 - Object.getPrototypeOf(val) === Object.prototype
推荐指数 :一颗星 - proto 方式 obj.proto === Object.prototype // true 代表为对象
推荐指数 :不推荐
判断数组的方法
- Object.prototype.toString.call(a) === ‘[object Array]’
推荐指数 :五颗星 - Array.isArray()
推荐指数 :四颗星 - arr instanceof Array
推荐指数 :三颗星 - Array.prototype.isPrototypeOf(arr)
推荐指数 :三颗星
Array.prototype 属性表示 Array 构造函数的原型
其中有一个方法是 isPrototypeOf() 用于测试一个对象是否存在于另一个对象的原型链上
- Object.getPrototypeOf(arr) === Array.prototype
推荐指数 :三颗星
bject.getPrototypeOf() 方法返回指定对象的原型,所以只要跟Array的原型比较即可
- a.constructor === Array
推荐指数 :二颗星