判断一个对象是不是Array对象的总结?

x33g5p2x  于2022-03-25 转载在 其他  
字(0.6k)|赞(0)|评价(0)|浏览(292)

一、写在前面
今天面试问到一个面试题,就是判断一个对象是不是Array对象,我当时说了三个,但是还有一些,自己没有答出来。下面进行总结一下。
二、总结
2.1、instanceof方法

console.log([] instanceof Array)  //true
instanceof是用来判断右边对象的原型对象是否在左边对象的原型链上。

instanceof也问了如何实现。
2.2、Object.prototype.toString()方法

console.log(Object.prototype.toString([]))  //[object Object]
console.log(Object.prototype.toString.call([])) //[object Array]

2.3、原型prototype + isPrototypeOf()

console.log(Array.prototype.isPrototypeOf([])) //true
用来判断左边对象是否在右边对象的原型链上。

2.4、constuctor

console.log([].constructor.toString().indexOf('Array') !== -1) // true

2.5、isArray方法

console.log(Array.isArray([]))  //trues

相关文章