super-fool / blog

珍藏经典, 分享思想, 共同进步.加油
3 stars 0 forks source link

判断是否为数组 #86

Open super-fool opened 3 years ago

super-fool commented 3 years ago
var a = [1, 2, 3];

// ===
var b = new Array(1,2,3);

//so 第一种判断方式就是根据原型链进行判断 ⬇
console.log(b.__proto__ === Array.prototype);
console.log(a.__proto__ === b.__proto__);

// 第二种则是根据Array自带方法:
console.log(Array.isArray(a));

// 那你觉得下面这个会是什么结果?
Array.isArray(Array.prototype);

// 第三种: instanceof
b instanceof Array

// 第四种: Array.prototype.isPrototypeOf
Array.prototype.isPrototypeOf(b);

// 第五种: 万能判断法
Object.prototype.toString.call(b).slice(8, -1) === 'Array';