zoukankan      html  css  js  c++  java
  • JavaScript 用七种方式教你判断一个变量是否为数组类型(转)

    JavaScript 如何判断一个变量是否为数组类型

    引言

    我们如何判断一个变量是否为数组类型呢? 今天来给大家介绍七种方式,别走开, 这肯定会被问到的~继续往下看吧

    正文

    首先先告诉你们, typeof 是无法判断一个变量是否为数组类型的,我们来看一下例子:

    let arr = [1, 2, 3]
    console.log(typeof arr)
    
    //  object     最后输出的是object对象
    

    方法一

    使用 instanceof 运算符, 该运算符左边是我们想要判断的变量, 右边则是我们想要判断的对象的类, 例如:

    let arr = [1, 2, 3]
    console.log(arr instanceof Array)
    
    //  true     返回true,说明变量arr是数组类型
    

    方法二

    利用构造函数来判断他的原型是否为Array, 用法: 变量.constructor === 变量类型

    let arr = [1, 2, 3]
    console.log(arr.constructor === Array)
    
    //  true     返回true,说明变量arr是数组类型
    

    方法三

    第三种方法利用的一个专门的方法 isArray(), 用法:Array.isArray(变量),返回true,则说明该变量是数组类型;反之,说明该变量不是数组类型

    let arr = [1, 2, 3]
    console.log(Array.isArray(arr))
    
    //  true     返回true,说明变量arr是数组类型
    

    方法四

    第四种方法是调用Object.prototype.toString.call(),返回true,则说明该变量是数组类型;反之,说明该变量不是数组类型

    let arr = [1, 2, 3]
    console.log(Object.prototype.toString.call(arr) === '[object Array]')
    
    //  true     返回true,说明变量arr是数组类型
    

    方法五

    第五种方式是通过对象的原型方式来判断,直接来看例子

    let arr = [1, 2, 3]
    console.log(arr.__proto__ === Array.prototype)
    
    //  true     返回true,说明变量arr是数组类型
    

    方法六

    第六种方式是通过 Object.getPrototypeOf()来判断是否为数组类型,例如

    let arr = [1, 2, 3]
    console.log(Object.getPrototypeOf(arr) === Array.prototype)
    
    //  true     返回true,说明变量arr是数组类型
    

    方法七

    第七种方式是通过 isPrototypeOf() 方法来判断是否为数组类型,例如

    let arr = [1, 2, 3]
    console.log(Array.prototype.isPrototypeOf(arr))
    
    //  true     返回true,说明变量arr是数组类型
    

    结束语

    当你面试中被问到如何判断一个变量是否为数组类型的时候,你就将这七种方式脱口而出吧, 一定会让面试官大吃一斤的~

    转自:JavaScript 用七种方式教你判断一个变量是否为数组类型

  • 相关阅读:
    re模块的split(),sub()方法 新发现
    tf.where()&np.random.RandomState.rand()&np.vstack&np.mgrid .ravel np.c_[]
    Embedding实现1pre1
    tf.keras训练iris数据集
    tf.keras 搭建神经网络六部法
    循环计算过程(4pre1)
    池化(pooling)舍弃(dropout)& 卷积神经网络
    [C]gcc编译器的一些常用语法
    [POSIX]文件系统(概述)
    [Linux]PHP-FPM与NGINX的两种通讯方式
  • 原文地址:https://www.cnblogs.com/wwqzbl/p/15415383.html
Copyright © 2011-2022 走看看