别看这个问题看似简单,面试真的经常问到,没有总结过得话一时间还有点想不起来!
一、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]
来源:CSDN
作者:小丁冲鸭!
链接:https://blog.csdn.net/DZY_12/article/details/103416368