关于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值
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。