3. 判断数组的方式有哪些
1.通过Object.prototype.toString.call()判断
console.log(Object.prototype.toString.call([]).slice(8,-1)) //Array
2.通过原型链做判断
const arr = []
console.log(arr.__proto__ === Array.prototype);//true
3.通过ES6的Array.isArray()做判断
console.log(Array.isArray([1,2])); //true
4.通过instanceof做判断
console.log([] instanceof Array); //true
5.通过Array.prototype.isPrototypeOf
console.log(Array.prototype.isPrototypeOf([1,2])) //true
Array.isArray(arr) —— 首选,最准
Object.prototype.toString.call(arr) —— 通用稳定
arr instanceof Array —— 简单,但跨窗口不准
Array.prototype.isPrototypeOf(arr) —— 同 instanceof
Object.getPrototypeOf(arr) === Array.prototype —— 标准原型判断