Memory River

记忆河,记今日之事忆往昔之流

js判断变量是不是数组的方法

Rickey  \  2019-10-21 10:28:59

方案一:instanceof

变量 instanceof 类型 返回的是布尔值 true false<br>例: var a = []  a instanceof Array

方案二:原型prototype + toString + call()

首先: Object.prototype.toString.call(variable)来判断,返回值是字符串

其次: Object.prototype.toString.call(variable).indexOf('Array') 如果变量对象是纯数组,返回的数字不是-1

最后: Object.prototype.toString.call(variable).indexOf('Array') !== -1 比对数值是否等于-1就能判断是否是数组类型 是为true

方案三:原型prototype + isPrototypeOf()

Array.prototype.isPrototypeOf(variable) 

isPrototypeOf() 函数 : 用于指示对象是否存在于一个对象的原型链中。如果存在返回true,反之返回false。该方法属Object对象,由于所有的对象都继承了Object的对象实例,因此几乎所有的实例对象都可以使用该方法。如果variable的原型链中存在Array对象,就会返回true,也就说明variable是数组类型。


方案四:构造函数 constructor

variable.constructor
variable.constructor.toString()
variable.constructor.toString().indexOf("Array") !== -1

一个数组类型的实例,其原型__proto__.constructor右边是Array关键字,再拿到字符串,最后查找字符串中Array关键字的位置是否等于-1


方案五:数组方法 isArray()

Array.isArray(variable)

 

标签: js数组
地址: http://wchuf.com/article/adt/fc7accb221bc4393bb9032c42a394d0f.html
声明: 本文为原创文章,版权归本站所有,欢迎分享本文,转载请保留出处!
  203         0         0
Rickey
人,可以无傲气,但不可以无傲骨。

YOU MIGHT ALSO LIKE

0 COMMENTS
想对博主说些什么?