如何区分数组和对象?

192 阅读1分钟

法1 :通过 ES6 中的 Array.isArray 来识别

console.log(Array.isArray([]))//true
console.log(Array.isArray({}))//false

法2 :通过 instanceof 来识别

console.log([] instanceof Array)//true
console.log({} instanceof Array)//false

法3 :通过调用 constructor 来识别

console.log([].constructor)//[Function: Array]
console.log({}.constructor)//[Function: Object]

法4 :通过 Object.prototype.toString.call 方法来识别

console.log(Object.prototype.toString.call([]))//[object Array]  
console.log(Object.prototype.toString.call({}))//[object Object]