zoukankan      html  css  js  c++  java
  • js判断一个变量是否为数组的解决方案

    前端开发中,在做项目的时候,我们经常需要对一个变量进行数组类型的判断,当然即使你暂时没遇到,但是这个问题也是大家去面试时的高频问题,有必要拿出来说一说。

    大家都知道js中可以使用typeof来判断变量的基本类型,如:

    js判断一个变量是否为数组的解决方案

    但是这个方法不适用于来判断数组,因为不管是数组还是对象,都会返回object,这就需要我们需求其他的方法。

    有三种方法可以拿来判断:

    1、constructor属性

    这个属性在我们使用js系统或者自己创建的对象的时候,会默认的加上,例如:

    js判断一个变量是否为数组的解决方案

    所以我们就可以这样来判断:

    js判断一个变量是否为数组的解决方案

    2、instanceof

    instanceof是检测对象的原型链是否指向构造函数的prototype对象的,所以我们也可以用它来判断:

    js判断一个变量是否为数组的解决方案

    3、使用toString方法

    Object.prototype.toString是原型链的顶层object的一个方法,我们可以用它来判断:

    js判断一个变量是否为数组的解决方案

    4.Array.isArray()方法

    ECMAScript5将Array.isArray()正式引入JavaScript,从此我们又多了一个检测数组的方法:

    js判断一个变量是否为数组的解决方案

    注意点:讲完了上述四种方法,下面说一下注意事项,前两种方法使用的时候不太保险,因为在跨页面操作的时候,js里面的原型链是不对应的,所以前两种方法有一定的局限性,不过一般不会遇到。第四种方法因为是新出的,脑残的IE低版本当然是不支持的,在标准浏览器下无误。由此,最好的方法还是使用第三种方法。

    最后,为了给大家一个结果,现写出一个终极解决方案:

    判断数组终极解决方案

    js判断一个变量是否为数组的解决方案

     ——转自切图网。

  • 相关阅读:
    CodeForces Round #678(Div2) E.Complicated Computations Mex性质,权值线段树
    P6075 子集选取 思维
    HDU-4747 Mex 线段树应用 Mex性质
    P1273 有线电视网 树形DP 树上背包
    P6786 GCDs & LCMs 数学推导
    [CTSC1997] 选课 树上背包
    Gym-101915K Poor Ramzi 区间DP
    [MdOI R2] Odyssey 拓扑排序上DP
    CodeForces Div3.F
    二分-B
  • 原文地址:https://www.cnblogs.com/niwalala/p/5109693.html
Copyright © 2011-2022 走看看