spfLinux通过本文主要向大家介绍了JS 判断数组等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
//如何判断一个对象是不是数组类型,有几种方式 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) )