面试常考题JavaScript用七种方式教你判断一个变量是否为数组类型

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

方法一


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


                结束语


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


                相关文章
                |
                10月前
                |
                JavaScript 前端开发 开发者
                如何在 JavaScript 中处理不同类型的错误?
                【10月更文挑战第29天】通过对不同类型错误的准确识别和恰当处理,可以提高JavaScript程序的可靠性和稳定性,减少错误对程序运行的影响。
                |
                负载均衡 NoSQL 算法
                一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
                这篇文章是关于Java面试中Redis相关问题的笔记,包括Redis事务实现、集群方案、主从复制原理、CAP和BASE理论以及负载均衡算法和类型。
                一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
                |
                10月前
                |
                JavaScript 前端开发 Java
                除了 JavaScript,还有哪些编程语言支持 Set 类型
                【10月更文挑战第30天】这些编程语言中的 `Set` 类型虽然在语法和具体实现细节上有所不同,但都提供了类似的集合操作功能,方便开发者在不同的编程场景中处理集合相关的数据和逻辑。
                311 113
                |
                7月前
                |
                数据采集 Java Linux
                面试大神教你:如何巧妙回答线程优先级这个经典考题?
                大家好,我是小米。本文通过故事讲解Java面试中常见的线程优先级问题。小明和小华的故事帮助理解线程优先级:高优先级线程更可能被调度执行,但并非越高越好。实际开发需权衡业务需求,合理设置优先级。掌握线程优先级不仅能写出高效代码,还能在面试中脱颖而出。最后,小张因深入分析成功拿下Offer。希望这篇文章能助你在面试中游刃有余!
                115 4
                面试大神教你:如何巧妙回答线程优先级这个经典考题?
                |
                11月前
                |
                JavaScript 前端开发 安全
                深入理解TypeScript:增强JavaScript的类型安全性
                【10月更文挑战第8天】深入理解TypeScript:增强JavaScript的类型安全性
                212 0
                |
                10月前
                |
                开发框架 JavaScript 前端开发
                TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
                TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
                200 2
                |
                10月前
                |
                JSON 前端开发 JavaScript
                聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
                在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
                230 4
                |
                10月前
                |
                存储 JavaScript 前端开发
                js的基础类型和引用类型
                【10月更文挑战第29天】理解 JavaScript 中的基础类型和引用类型的区别对于正确地编写代码和理解程序的行为非常重要。在实际开发中,需要根据具体的需求合理地选择和使用不同的数据类型,以避免出现一些意想不到的错误和问题。同时,在处理引用类型数据时,要特别注意对象的引用关系,避免因共享引用而导致的数据不一致等问题。
                【Java基础面试七】、请介绍一下实例变量的默认值
                这篇文章介绍了Java中实例变量的默认值:引用数据类型的默认值是null,而基本数据类型的默认值根据其类型分别是0、0L、0.0F、0.0、'\u0000'和false。
                【Java基础面试七】、请介绍一下实例变量的默认值
                【Java基础面试五】、 int类型的数据范围是多少?
                这篇文章回答了Java中`int`类型数据的范围是-2^31到2^31-1,并提供了其他基本数据类型的内存占用和数值范围信息。
                【Java基础面试五】、 int类型的数据范围是多少?