JS判断变量是不是数组,这往往是一道经典面试题。给大家分享我在工作中用到的五种方法:
1.方式一:采用Array构造对象的isArray方法
var arr = [1,2,3];
console.log( Array.isArray( arr ) );
返回true/false
2.方式二:采用instanceof数据类型检测
var arr = [1,2,3];
console.log( arr instanceof Array );
返回true/false
3.方式三:是否在Object大对象的原型链上出现并含有‘Array’标识
var arr = [1,2,3];
console.log( Object.prototype.toString.call(arr).indexOf('Array') > -1 );
返回true/false
4.方式四:Array原型的isPrototypeOf()方法
var arr = [1,2,3];
console.log( Array.prototype.isPrototypeOf(arr) )
返回true/false
5.方式五:是否出现在这个变量自身的constructor属性中
var arr = [1,2,3];
console.log( arr.constructor.toString().indexOf('Array') > -1 )
返回true/false
以上方法各有利弊,小伙伴们是否有其他更好的方法呢,欢迎留言探讨~