关于前端:js中引用数据类型如何判断是数组还是对象

7次阅读

共计 464 个字符,预计需要花费 2 分钟才能阅读完成。

对于 typeof 的局限性

typeof 只能判断 js 中的根底数据类型
援用数据类型 (函数,array,object) 全副为 Object,如果业务逻辑中须要判断具体为哪一种援用类型,则无奈实现

能够实现判断是数组还是对象的几种办法

instanceof

简略来说就是:判断对象的原型链是否是指向构造函数的 prototype
已知:array 属于 object,然而 object 不全等于 array
得出:arr instanceof Array //true
    arr instanceof Object //true
    obj instanceof Array //false

对象 constructor 属性

判断结构器为什么类型
arr.constructor === Array //true
arr.constructor=== Object //false

Object.prototype.toString.call()

此办法能够准确返回 call()办法中的参数的数据类型
这里的实现原理大家能够具体推敲一下,不做赘述。

isArray 办法

Array.isArray
返回为 boolean 值
     
正文完
 0