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

对于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值
     

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理