对于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 //truearr.constructor=== Object //false

Object.prototype.toString.call()

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

isArray办法

Array.isArray返回为boolean值