总所周知,我们判断一个变量的类型常用typeof方法,但是该方法只能判断String,number,boolean,等等原始数据类型,对于object引用数据类型则无法准确判断
以下我总结了5种判断数组的方法
//判断一个变量是否是数组
var arr=[1,2]
//1 判断父对象是否是构造函数Array 的原型对象
arr.__proto__==Array.prototype
//2 判断父对象的构造函数是否是Array
arr.constructor==Array
//3 用toString()方法判断一个对象的class属性,但是只有Object的原型对象可以用
//用该api使子对象直接使用Object的原型对象的toString方法
Object.prototype.toString.call(arr)=="[object Array]"
//4 使用静态方法Array.isArray(),查看对象的class属性
Array.isArray(arr)
//5 让子对象直接继承Object的原型对象,用Object原型对象的toString方法查看
// 子对象的class属性
arr.__proto__=Object.prototype
arr.toString()