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