判断数组类型的方法

淺唱寂寞╮ 提交于 2019-12-09 22:50:15

别看这个问题看似简单,面试真的经常问到,没有总结过得话一时间还有点想不起来!

一、instanceof

instanceof只适用于对象类型的数据,基本类型会直接返回false,其实现原理是在原型链上查找某属性。

let arr = [1, 2, 3];
let a = arr instanceof Array;
console.log(a);  // true

二、ES6中的isArray方法

let arr = [1, 2, 3]; 
console.log(Array.isArray(arr));  // true

三、__proto__和prototype

let arr = [1, 2, 3]; 
console.log(arr.__proto__ === Array.prototype);   //true

四、constructor

let arr = [1, 2, 3]; 
console.log(arr.__proto__.constructor === Array);  //true

五、toString方法

let arr = [1, 2, 3]
console.log(Object.prototype.toString.call(arr));  // [object Array]

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!