面试题 | 如何通过js判断一个数组?

510 阅读1分钟
  • 前言 如何判断一个对象或一个值是否是一个数组,在面试或工作中我们常常会遇到这个问题,既然出现频率高,想着还是做个整理,那么本文主要基于几种判断方式,以及方式判断的原理,是否存在问题展开讨论。

1. instanceof方法

  • instanceof运算符是用来测试一个对象是否在其原型链原型构造函数的属性。
var arr = [];
arr instanceof Array; //true

2. isArray方法

Array.isArray([]);//true
Array.isArray(123);//false

3. constructor方法

  • constructor属性返回对创建此对象的数组函数的引用,就是返回对象相对应的构造函数。
var arr = [];
arr.constructor == Array;//true

4. Object.prototype.toString方法

 Object.prototype.toString.call([])==='[object Array]'//true
     

写个方法

    function isArray(obj){
        return Object.prototype.toString.call(obj) ===
        '[object Array]'
    }
    var arr = [1,2,3];
    console.log(isArray(arr));//true

总结

春招冲锋,先从基础入手面试题!大家一起加油吧!