一、数组判断
通过 instanceof 运算符判断构造函数的prototype是否出现在对象的原型链中,返回boolean值
[] instanceof Array; //true
代码解析:instanceof运算符检测Array.prototype属性是否存在于变量a的原型链上 [].proto === Array.prototype,返回true
存在问题:Symbol.hasInstance自定义instanceof的行为,所以instanceof不是百分百可信的;构造函数的prototype属性是可以修改的通过实例的constructor属性,因为实例的constructor属性指向其构造函数
[]constructor === Array;//true
通过Object.prototype.toString.call()判断
Object.prototype.toString.call([]) === '[object Array]';//true
他强大的地方在于不仅仅可以检验是否为数组,比如是否是一个函数,是否是数字等等
Array.isArray() 用于确定传递的值是否是一个数组,返回一个布尔值。
Array.isArray([]) // true