区别数组和对象的三种方法

区别数组和对象的三种方法


因为typeof
判断对象和数组都为Object的类型,

所以有时无法判断一个值的类型是对象还是数组。

<script type="text/javascript">

var obj = [];

//现在判断 obj 是属于社么类型的值

</script>

1.constructor

数组的构造函数是function Array(){...}

对象的构造函数是function Object() { ...}

QQ浏览器截图_20180312092307_14A73E450D3E45acAD65D25A079B29BA.jpg

2.instanceof

QQ浏览器截图_20180312093419_7B9B4D6B085A424e9E65EAC7054EB465.jpg

查看obj的原型链里有没有Array的构造函数,

如果有返回true,即obj是Array数组类型的。

3.toString

QQ浏览器截图_20180312095422_C0A78CD309004a2aA6F9B6776EC10D23.jpg

改变this的指向,让数组调用Object的to.String方法。

猜你喜欢

转载自blog.csdn.net/dfggffdd/article/details/80092867