1.第一种对象和数组里边都包含着一个属性(constructor),可以按照下边的方法区分:
let object = { 'a':1, 'b' :2, 'c' :3 }; let array = [1,2,3]; console.log(object.constructor); // ƒ Object() { [native code] } console.log(array.constructor); // ƒ Array() { [native code] }
2.使用 instanceof 来判断是否是数组
let object = { 'a':1, 'b' :2, 'c' :3 }; let array = [1,2,3]; console.log(object instanceof Array); //false console.log(array instanceof Array); //true
3.使用es6中的 Array.isArray( ) 来判断是否是数组
let object = { 'a':1, 'b' :2, 'c' :3 }; let array = [1,2,3]; console.log(Array.isArray(array)); // true console.log(Array.isArray(object)); // false
4.使用 Object.prototype.toString.call( )
let object = { 'a':1, 'b' :2, 'c' :3 }; let array = [1,2,3]; console.log(Object.prototype.toString.call(object)); //[object Object] console.log(Object.prototype.toString.call(array)); //[object Array]
5.本人一般常用的第二种 和第三种方法,