一、Array.isArray

ES5新增的数组方法,Array.isArray应该是我们最先想到的判定方式,现在应用的也比较广泛。

const arr = [1,2,3,4]
Array.isArray(arr)    // true

二、instanceof

一般来说,instanceof关键字,是用来判断某个元素是否某对象构造函数实例。在数组判断上,instanceof关键字也可以进行数组的判定。

const arr = [1, 2, 3, 4]
arr instanceof Array   // true

三、Object.prototype.toString.call(最优方法)

对象的toString方式也可以判定数组类型,一般来说这种方式的判定是各大库的一种Array.isArray的代替实现。

例如,polyfill中,就是如此实现:

if (!Array.isArray) {Array.isArray = function(arr) {return Object.prototype.toString.call(arr) === '[object Array]';};
}const arr = [1, 2, 3, 4]
Object.prototype.toString.call(arr) === '[Object Array]'   // true

四、constructor

除了以上的方式之外,我们还可以通过构造函数来判定:

const arr = [1, 2, 3, 4]
arr.constructor === Array  // true
arr.__proto__.constructor === Array //true

参考:https://www.cnblogs.com/qixingduanyan/p/11725557.html

JavaScript判断数组的方法相关推荐

  1. js判断数组的方法(JavaScript判断数组的方法,7种),实操详细

    var arr = [ ]; 1.实例的__proto__属性(IE不支持) arr.__proto__ === Array.prototype //true 2.实例的constructor属性 a ...

  2. javascript操作数组的方法大全

    javascript操作数组的方法大全 一.ES5数组的方法 1.Array.isArray() 用来判断是否为数组 var arr = [1, 2, 3, 4, 5]; var obj = {}; ...

  3. JavaScript判断数据类型的方法

    JavaScript判断数据类型的方法 1 数据类型有哪些? 2 判断JavaScript数据类型的方法 2.1 typeof 2.2 instanceof 2.3 constructor 2.4 t ...

  4. JavaScript比较数组的方法

    JavaScript比较数组的方法 1.比较两个对象数组,删除重复项,根据属性合并对象 我们确实需要比较两个不同的对象数组,并希望在两个对象匹配特定属性值的情况下合并这两个对象.可以使用filter( ...

  5. 6种JavaScript判断数组是否包含某个值的方法

    我们在项目开发过程中,经常会要检查一个数组(无序)是否包含一个特定的值?这是一个在JavaScript中经常用到的并且非常有用的操作. 下面给出几种实现方式. 方式一:利用循环 这种方式是比较老的实现 ...

  6. JavaScript 判断数据类型的方法

    文章目录 1.javascript 中的数据类型 2.`typeof` 返回 变量的数据类型 3.`instanceof ` :复杂数据类型的判断 3.1.instanceof 原理分析(初学者跳过) ...

  7. javaScript基础数组属性方法

    数组: 1.Array.push() 在数组末尾添加元素并返回新的长度 let arr = ["张三","李四","王五"]; consol ...

  8. 前端开发:JavaScript合并数组的方法

    前言 在前端开发的时候,对于数据处理是很重要的一块,尤其是要根据实际的业务需求来处理数据,有很强的兼容性要求.而且有些时候后端提供的数据和实际的业务需求数据是有偏差的,所以前端在拿到后台返回的数据之后 ...

  9. 面试官:说下判断数组的方法

    在JS中,数组是是Object引用类型,所以说typeof运算符不可以用来判断数组 typeof运算符会把对象.数组或null返回object.却不能细分出是什么类型的数组... typeof运算符只 ...

  10. javascript判断数组是否包含了指定的元素

    jQuery写法: var arr = [ "xml", "html", "css", "js" ]; $.inArra ...

最新文章

  1. html 文本框 无法输入,无法在HTML文本框中输入任何东西
  2. 1、excel常用技能(数据分列、数据快速浏览、转置、选择性粘贴运算、绘制对角线、单元格内换行、插入注解文字或图片)
  3. Android直播app用什么技术可以做到延迟小一些?
  4. linuxpip安装python包_Windows+Linux安装Python包管理工具pip
  5. 寻找是生命中的另一场迷失
  6. 深入struts2(二) ---stuts2长处和主要包、类功能
  7. matlab取矩阵实部和虚部,MATLAB中容易忽略却经常遇到的小技巧总结
  8. 【图像处理】图像灰度级减少, 图像缩放(Reducing the Number of Gray Levels, Zooming and Shrinking)
  9. 恢复 管理员密码 新建管理员账号
  10. Django REST framework+Vue 打造生鲜超市(九)
  11. linux转换文件导出16进制,xxd命令转换二进制十六进制文件
  12. HDU 5336 BFS
  13. AngularJS知识概括
  14. 前言 金融大叔的梦想
  15. 湖南省如何参加政府采购网投标?
  16. linux打开文件脚本,linux脚本文件实现的功能有哪些剧本用工具打开
  17. 朝菌不知晦朔,蟪蛄不知春秋
  18. java计时器_Java实现的计时器【秒表】功能示例
  19. JSD-2204-WebServer(项目)-Day14
  20. 史上最全的xpath定位方法

热门文章

  1. ERP项目组成员及各项目组职责
  2. Java的图标和由来
  3. 读书笔记(13)STP
  4. linux vps 挂qq 教程,【教程】如何在linux vps下进行steam挂卡
  5. 华中数控808系统说明书_智能制造之高端数控系统龙头
  6. Matlab求方差,均值
  7. pcb地线应该不应该做成环路_电源PCB设计流程及要点全解析
  8. Redis 的过期策略
  9. 简约运营个人介绍简历PPT模板
  10. 锐浪报表-实现导入导出