判断数组类型的方法

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

一、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]
发布了67 篇原创文章 · 获赞 4 · 访问量 5962

猜你喜欢

转载自blog.csdn.net/DZY_12/article/details/103416368