JS判断数组类型

我们如何判断一个变量是否为数组类型呢? 这是在前端面试中面试官经常会问到的问题,看似很简单,但想说出多种判断方式也是非常难的,今天来给大家介绍七种方式,别走开, 这肯定会被问到的~继续往下看吧

方法一

使用 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是数组类型

结束语

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

关注我,不迷路~

我是Lpyexplore,带你在python爬虫的过程中学习前端

作者:Lpyexplore

公众号:Lpyexplore的编程小屋

扫码关注公众号获取更多资料

integer判断是否为null_面试常考题JavaScript用七种方式教你判断一个变量是否为数组类型...相关推荐

  1. 算法人必懂的进阶SQL知识,4道面试常考题

    (图片付费下载自视觉中国) 作者 | 石晓文 来源|小小挖掘机(ID:wAlsjwj) 近期在不同群里有小伙伴们提出了一些在面试和笔试中遇到的Hive SQL问题,Hive作为算法工程师的一项必备技能 ...

  2. 高职单招面试自我介绍稿子计算机专业,高职单招面试自我介绍范文及面试常考题...

    如何在高职单招面试中进行自我介绍呢?对很多缺乏社会经验的考生来说,要熟悉各种各样的面试技巧,然后要懂得临场发挥,不然很有可能因为慌张而导致语无伦次,把单招面试弄砸. 单招面试自我介绍范文 各位老师好, ...

  3. JS判断一个变量是否是数组

    方法一:Array.isArray() Array.isArray() 用于确定传递的值是否是一个 Array:返回 boolean 型,如果值是 Array则为 true:否则为 false // ...

  4. 如何判断一个变量是否为数组(isArray)

    在我们平时的工作中经常会用到如何判断一个变量是否为数组.常用的方法很多,有用常用框架里面的,isArray.但是关于这个isArray的实现,各有不同. 常用的方法有如下几种 1.instanceof ...

  5. 面试常考题---交换变量

    1 面试常考的试题:(交换两个变量值,不使用第三方变量) 2 方法1: int n1=50; 3 int n2=30; 4 //最终结果n1=30 n2=50 5 6 n1=n1-n2;//n1=20 ...

  6. 遇见运维(一)运维面试常考题

    1.什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了网络.系统.数据库.开发.安全.监控于一 ...

  7. 面试官 | Java转List三种方式,你说说吧。我。。懵逼。啥时候有三种了

    Hi 我是小小,我们又见面了,本文主要介绍Java数组转List的三种方式以及对比 前言 本文主要介绍Java中数组转为List的三种情况的优劣对比,以及应用场景. 第一种 通过 Arrays.asL ...

  8. 前端面试常考题:JS垃圾回收机制

    摘要:众所周知,应用程序在运行过程中需要占用一定的内存空间,且在运行过后就必须将不再用到的内存释放掉,否则就会出现下图中内存的占用持续升高的情况,一方面会影响程序的运行速度,另一方面严重的话则会导致整 ...

  9. 网络技术/技术支持岗位在网络安全大厂/互联网公司笔试面试常考题-计算机网络知识点总结

    目录 1.OSI七层模型及各层作用 2.TCP/IP模型 3.ARP地址解析协议(工作在网络层和数据链路层) 4.MAC层的功能&MAC地址的作用 MAC层功能: MAC地址作用​​​​​​什 ...

  10. 合肥Java面试常考题_北大青鸟java 面试--常见面试题(中)

    上一文中,我们总结了java面试的基础,多线程,jvm的常见面试题,本文合肥北大青鸟合工大校区的袁老师继续介绍面试中网络.数据结构和算法.分布式理论和微服务的常见面试题. 一.网络 网络的话,主要集中 ...

最新文章

  1. 深度学习核心技术精讲100篇(八)-keras 实战系列之深度学习中的多任务学习(Multi-task learning)
  2. python:从入门到实践-----外星人入侵的图片问题
  3. Hadoop |集群的搭建
  4. 在操作系统理论中,什么是饿死
  5. 网络协议之:一定要大写的SOCKS
  6. Java class不分32位和64位
  7. flyway常用配置_Spring Boot 2.x基础教程:使用Flyway管理数据库版本
  8. 字体编辑器_Mac系统常见的Birdfont字体编辑器
  9. UVA11556 Best Compression Ever【位运算】
  10. linux轮训创建文件夹,Linux文件和目录管理相关命令(三)
  11. memcached 快速入门
  12. Testbench编写
  13. ch cc 2019Mac(ch cc 2019直装版)2.1中文特别版
  14. LIBJPEG-TURBO库移植
  15. 音乐Npc弹窗 c#
  16. Windows 禁用U盘
  17. 掌握命令结构,详解monkey命令
  18. Euclid‘s Game(博弈)
  19. Depth from Motion:探索突破纯视觉 3D 检测瓶颈
  20. 一、一个月有多少天(Biweekly4)

热门文章

  1. istio入门(01)istio的优势在哪里?
  2. ansible源码解读
  3. AJAX 数据库实例
  4. 如何实现一个无边框Form的移动和改变大小(一)
  5. Perl的模块判断及安装
  6. Struts2基本包作用详解
  7. 【备用】SQL SERVER存储过程执行速度慢的问题
  8. 【CC评网】2013.第44周 把握每天的第一个小时
  9. RMAN Crosscheck 和 Delete 命令的2个实例
  10. Java线程 生产者--消费者模式总结(二)