1.Array.isArray()
Array.isArray() 可以判断一个对象是否为数组 返回布尔值
let obj = {};
let arr = [];
console.log(Array.isArray(obj)); // false
console.log(Array.isArray(arr)); // true
2. instanceof
instanceof运算符用于检测对象的原型链上是否存在构造函数的原型对象prototype;有则返回 true,否则返回 false
let obj = {};
let arr = [];
console.log(obj instanceof Array); //false
console.log(arr instanceof Array); // true
3. 判断原型 (proto) 是否为数组对象的原型对象
let obj = {};
let arr = [];
console.log(obj.__proto__ == Array.prototype); // false
console.log(arr.__proto__ == Array.prototype); // true
4. Object.toString()
let obj = {};
let arr = [];
console.log(obj.toString()); // [objectObject]
console.log(arr.toString()); // 输出为空
// 这是因为js中每个对象都有toString()方法,方法继承自Object.toString()方法,但数组被重了,
// 但是可以使用call()来调用数组的toString的始方法来判断。
console.log(Object.prototype.toString.call(arr)); // [object Array]