JS怎么判断是数组还是对象
2018-04-24 本文已影响0人
天天要加油
对数组和对象使用typeof,得出的结果都是"object"
![](https://img.haomeiwen.com/i11674720/66ca7bb064a16ba9.png)
使用以下五种方法区分是数组[]还是对象object
方法一:
使用instanceof进行判断,A instanceof B即对象A是不是构造函数B构造出来的,是即返回true, 不是即返回false.
![](https://img.haomeiwen.com/i11674720/ae86eb8c8e0c35bf.png)
方法二:
在typeof上进行enhancement, typeof数组和对象返回都是object, 但是数组的长度为0及0以上的整数,object的长度为undefined.
![](https://img.haomeiwen.com/i11674720/51e24546251e3980.png)
方法三:利用Object.prototype.toString.call()方法将该变量转化为代表其类型的string
![](https://img.haomeiwen.com/i11674720/48f07dc0fbadf883.png)
方法四: Array.isArray()
![](https://img.haomeiwen.com/i11674720/c46f17d9c4cee9f9.png)
方法五:利用constructor属性进行判断
![](https://img.haomeiwen.com/i11674720/d7d7911307632573.png)