如何判断 一个对象是 Array 还是 Object

Array.isArray()

只需判断是否为数组时使用

var a = [];
Array.isArray(a);  // true

var a ={
     };
Array.isArray(a);  // false

constructor

判断对象时–首推 (可判断 Arrray、Object、Number、Boolean、String)

var a = [];
a.constructor === Array     // true

var a = {
     };
a.constructor === Array    // false

var a = {
     };
a.constructor === Object   // true

instanceof

用于检测构造函数的 原型 是否出现在 实例对象原型链
可判断 Arrray、Object。不推荐

var a =[];
a instanceof Array    // true
a instanceof Object		//true

var a ={
     };
a instanceof Object   // true

typeof

根据 typeof 判断对象也 不太准确

typeof undefined  //'undefined'
typeof null     // 'object'
typeof true     // 'boolean'
typeof 123      //'number'
typeof "abc"     //'string'
typeof function(){
     } //'function'
typeof {
     }       //'object'
typeof []       //'object'

你可能感兴趣的:(javascript)