时间:2021-05-26
文中为大家分享了三种JavaScript判断对象是否为数组的方法,
1. typeof
首先我们会想到的是使用typeof来检测数据类型,但是对于Function, String, Number, Undefined等这几种基本类型来说,使用typeof来检测都可以检测到,比如代码如下:
但是对于数组或者正则来说,使用typeof来检测的话,那就满足不了,因为当我们检测数组或者正则的话,那么返回的类型将会是一个对象object,如下代码所示:
2. Instanceof
由此我们很容易会想到使用instanceof来检测某个对象是否是数组的实例,该检测会返回一个布尔型(boolean),如果是数组的话,返回true,否则的话返回false;我们再来看下上面的检测是否为数组的代码如下:
如上可以看到使用instanceof确实可以判断是否为数组的列子;
3. constructor属性
在javascript中,每个对象都有一个constructor属性,它引用了初始化该对象的构造函数,比如判断未知对象的类型,因此我们可以如下写一个方法,代码如下:
如上可以看到,通过调用isArray 方法也可以判断是否为数组的列子。
我们现在可以看到,对于第二点和第三点分别使用instanceof方法和constructor属性貌似都可以来判断是否为数组了,但是也有列外情况,比如在跨框架iframe的时候使用页面中的数组时,会失败,因为在不同的框架iframe中,创建的数组是不会相互共享其prototype属性的;如下代码测试即可得到验证~
如上的方法我们都不能来判断一个对象是否为数组的方式; 但是我们在看ECMA262中可以看到,可以使用 Object.prototype.toString.call()方法来判断一个对象是否为数组;如下代码:
以上就是本文的全部内容,帮助大家学习JavaScript判断对象是否为数组的方法,希望对大家的学习有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
JS中复合数组associativearray和对象是等同的,判断一个key是否存在于数组中(或对象是否包含某个属性),不能使用ary[key]==unde
本文实例讲述了JS判断两个数组或对象是否相同的方法。分享给大家供大家参考,具体如下:JS判断两个数组是否相同要判断2个数组是否相同,首先要把数组进行排序,然后转
1判断是否为数组类型2判断是否为字符串类型3判断是否为数值类型4判断是否为日期类型5判断是否为函数6判断是否为对象1判断是否为数组类型复制代码代码如下://va
java判断是否空的方法:1、判断字符串或者对象是否为空StringUtils的判断StringUtils.isEmpty(CharSequencecs);//
废话不多说,直奔主题了。varjsonStr={};1、判断json是否为空jQuery.isEmptyObject();2、判断对象是否为空:1、if(typ