如何判断是数组还是对象
判断是否为数组
var a = ['1','2','3','4','5','6','7','8','9']
var b = {'a': 'a1','b': 'b1','c': 'c1','d': 'd1'}
- 肉眼观察形式上数组和对象结构上不一样
- 利用
typeof
判断类型?错误 ,这里介绍一下新的方法 constructor
console.log(typeof a) // object
console.log(typeof b) // object
// 注意咯
console.log( a.constructor) // Array
console.log( b.constructor) // Object
- 利用length ?数组长度直接打印,对象需要遍历++
console.log( a.length ) // 9
console.log( b.length ) // underfined
- 利用
Object.prototype.toString.call()
判断
console.log(Object.prototype.toString.call(a)) // [object Array]
console.log(Object.prototype.toString.call(b)) // [object Object]
- es5 新方法
Array.isArray()
console.log(Array.isArray(a)) // true
console.log(Array.isArray(b)) // false