//如何判断一个对象是不是数组类型,有几种方式
var obj1={},obj2=[],obj3=new Date(),obj4={};
obj4.__proto__ = obj2;
console.log( //不严格
Array.prototype.isPrototypeOf(obj1),
Array.prototype.isPrototypeOf(obj2),
Array.prototype.isPrototypeOf(obj3),
Array.prototype.isPrototypeOf(obj4)
);
console.log( //不严格
obj1 instanceof Array,
obj2 instanceof Array,
obj3 instanceof Array,
obj4 instanceof Array
);
//DNA 最严格方式?!
console.log(
/*obj1.toString(),
obj2.toString(),
obj3.toString(), //各个的值不同,因为多态
obj4.toString()*/
console.log(Object.prototype.toString.call(obj1)=="[object Array]"),
console.log(Object.prototype.toString.call(obj2)=="[object Array]"),
console.log(Object.prototype.toString.call(obj3)=="[object Array]"),
console.log(Object.prototype.toString.call(obj4)=="[object Array]")
);
//ES5 Array.isArray(obj) 原理是上面的第三种 严格
console.log(
Array.isArray(obj1),
Array.isArray(obj2),
Array.isArray(obj3),
Array.isArray(obj4)
)
JS——判断数组
最新推荐文章于 2022-09-28 09:36:03 发布