如何判断变量是对象还是数组

1.instanceof

 
var arr = [1, 2, 3];
var obj = {
    name: 'mt',
    age: 6
}
console.log(arr instanceof Array); //true
console.log(obj instanceof Array); //false
 

2.constructor

 
var arr = [1, 2, 3];
var obj = {
    name: 'mt',
    age: 6
}
console.log(arr.constructor === Array); //true
console.log(obj.constructor === Array); //false
 

3.Object.prototype.toString()

 
var arr = [1, 2, 3];
var obj = {
    name: 'mt',
    age: 6
}
console.log(Object.prototype.toString.call(arr) === '[object Array]'); //true
console.log(Object.prototype.toString.call(boj) === '[object Array]'); //false
 

4.数组仅有的方法(如:sort,pop等)

 
var arr = [1, 2, 3];
var obj = {
    name: 'mt',
    age: 6
}
console.log(arr.sort === Array.prototype.sort); //true
console.log(obj.sort === Array.prototype.sort); //false
posted @ 2017-07-17 14:00  梦涂  阅读(265)  评论(1)    收藏  举报