面试常考题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是数组类型


                结束语


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


                相关文章
                |
                2月前
                |
                JavaScript 前端开发 开发者
                如何在 JavaScript 中处理不同类型的错误?
                【10月更文挑战第29天】通过对不同类型错误的准确识别和恰当处理,可以提高JavaScript程序的可靠性和稳定性,减少错误对程序运行的影响。
                |
                4月前
                |
                JavaScript 前端开发
                JavaScript如何判断变量undefined
                JavaScript如何判断变量undefined
                |
                4月前
                |
                JSON JavaScript 前端开发
                Javascript基础 86个面试题汇总 (附答案)
                该文章汇总了JavaScript的基础面试题及其答案,涵盖了JavaScript的核心概念、特性以及常见的面试问题。
                72 3
                |
                3月前
                |
                JavaScript 前端开发 安全
                深入理解TypeScript:增强JavaScript的类型安全性
                【10月更文挑战第8天】深入理解TypeScript:增强JavaScript的类型安全性
                68 0
                |
                4月前
                |
                前端开发 JavaScript
                JavaScript 面试系列:如何理解 ES6 中 Generator ?常用使用场景有哪些?
                JavaScript 面试系列:如何理解 ES6 中 Generator ?常用使用场景有哪些?
                |
                4月前
                |
                JavaScript 前端开发
                JavaScript基础知识-变量的声明提前
                关于JavaScript变量声明提前特性的基础知识介绍。
                51 0
                JavaScript基础知识-变量的声明提前
                |
                2月前
                |
                JSON JavaScript 前端开发
                [JS]面试官:你的简历上写着熟悉jsonp,那你说说它的底层逻辑是怎样的?
                本文介绍了JSONP的工作原理及其在解决跨域请求中的应用。首先解释了同源策略的概念,然后通过多个示例详细阐述了JSONP如何通过动态解释服务端返回的JavaScript脚本来实现跨域数据交互。文章还探讨了使用jQuery的`$.ajax`方法封装JSONP请求的方式,并提供了具体的代码示例。最后,通过一个更复杂的示例展示了如何处理JSON格式的响应数据。
                43 2
                [JS]面试官:你的简历上写着熟悉jsonp,那你说说它的底层逻辑是怎样的?
                |
                2月前
                |
                开发框架 JavaScript 前端开发
                TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
                TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
                46 2
                |
                2月前
                |
                JSON 前端开发 JavaScript
                聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
                在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
                58 4
                |
                2月前
                |
                前端开发 JavaScript
                如何在 JavaScript 中访问和修改 CSS 变量?
                【10月更文挑战第28天】通过以上方法,可以在JavaScript中灵活地访问和修改CSS变量,从而实现根据用户交互、页面状态等动态地改变页面样式,为网页添加更多的交互性和动态效果。在实际应用中,可以根据具体的需求和场景选择合适的方法来操作CSS变量。