如何判断一个对象是不是是数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何判断一个对象是不是是数组相关的知识,希望对你有一定的参考价值。
参考技术A 第一种方法:使用instanceof操作符。instanceof操作符用来判断要检测对象的原型链上是否存在某个构造函数的prototype属性。
语法: A instanceof B,意思是对象A的原型是否是B.prototype。如果是,返回true,如果不是,返回false。
第二种方法:
使用ECMAScript 5新增的Array.isArray()方法。这个方法的作用就是确定某个值到底是不是数组,而不管它到底是在哪个全局执行环境中创建的。
第三种方法:
使用使用Object.prototype上的原生toString()方法判断。
判断一个变量是不是为数组
参考技术A 怎么判断一个变量是不是数组呢?由于数组也是对象,用typeof方法,输出的是Object,所以typeof肯定不能判断一个变量是否为数组了,今天主要记录其他集中判断变量是不是数组的方法。所以arr instanceof Array 返回true即可判断arr是数组。
如果返回true就是数组。
instanceof 和constructor判断的变量,必须在当前页面声明的,比如,一个页面中有一个子页面,子页面中声明了一个arr并将其赋值给父页面,在父页面应用23方法都是不可以的。
原因:
1、array属于引用类型,在数据传递过程中,仅仅是引用地址的传递。
2、每个页面的Array原生对象所引用的地址是不一样的,在子页面中声明的arr,所对应的构造函数是子页面的Array对象,父页面来判断并不等于子页面的Array
这个返回true的话就是数组啦~
以上是关于如何判断一个对象是不是是数组的主要内容,如果未能解决你的问题,请参考以下文章