js怎么判断是否是数组?
方法一:isArray()数组自带的判断方法
let a =[1,2,3];
Array.isArray(a); //true
方法二:instanceof操作符
let a = [1,2,3];
a instanceof Array; //true
方法三:constructor.toString()方法
let a = [1,2,3]
//把constructor转换成字符串,然后通过indexOf去判断是否包含Array
a.constructor.toString().indexOf("Array") !== -1; //true
方法四:Object.prototype.toString.call(a).indexOf(“Array”)
let a = [1,2,3];
//和上面一个意思,都是转换成字符串,然后判断是否包含Array,
//有就会返回下标位置
/*
Object.prototype.toString会取对象的一个内部属性[[Class]],
大概会返回一个类似于"[object Array]"这样的字符串,注意,
这里这个是内部属性,外部是无法访问的,然后再配合call方法,
改变toString的this指向,也就是指向a数组
*/
Object.prototype.toString.call(a).indexOf("Array")