1.对于Javascript 1.8.5(ECMAScript 5),变量名字.isArray( )能够实现这个目的prototype
1 var a=[]; 2 var b={}; 3 Array.isArray(a);//true 4 Array.isArray(b)//false
2.若是你只是用typeof来检查该变量,不管是array仍是object,都将返回‘objec'。 此问题的一个可行的答案是是检查该变量是否是object,ip
而且检查该变量是否有数字长度(当为空array时长度也可能为0,object的长度为undefined)。string
var a=[]; var b={}; typeof a === 'object' && !isNaN(a.length)//true typeof b === 'object' && !isNaN(b.length)//false
3.调用toString( )方法试着将该变量转化为表明其类型的string。 变量
var a=[]; var b={}; Object.prototype.toString.call(a) === '[object Array]'//true Object.prototype.toString.call(b) === '[object Array]'//false