1.通过instanceof判断

instanceof运算符用于检验构造函数的prototype属性是否出现在对象的原型链中的任何位置,返回一个布尔值

 2.通过constructor判断

实例的构造函数属性constructor指向构造函数,通过constructor属性可以判断是否为一个数组

 3.通过Object.prototype.toString.call()判断

Object.prototype.toString.call()可以获取到对象的不同类型

 4.通过Array.isArray()判断

Array.isArray()用于确定传递的值是否是一个数组,返回一个布尔值

 有个问题是Array.isArray()是ES5新增的方法,目的就是提供一个稳定可用的数组判断方法,对于ES5之前不支持此方法的问题,我们其实可以做好兼容进行自行封装,如下:

5.补充:typeof

typeof 只能检测 基本数据类型,包括boolean、undefined、string、number、symbol,而null ,Array、Object ,使用typeof出来都是Object,函数的typeof 是function 无法检测具体是哪种引用类型。

本文参考链接:https://www.cnblogs.com/echolun/p/10287616.html

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐