判断对象是否为数组,js判断一个对象是否是数组
1,从构造函数obj instanceof数组开始
Typeof和instanceof都可以用来判断变量,typeof方法返回一个字符串表示数据的类型;但是用typeof来判断数据类型是不准确的。比如array,regular,date,typeof的对象返回值都是对象,会造成一些错误。
instanceof运算符用于测试对象在其原型链中是否具有构造函数的原型属性,并返回一个布尔值。
如何解决写爬虫IP受阻的问题?立即使用。
2.从原型array . prototype . isprototypeof(obj)开始;
使用isPrototypeOf()方法,判断数组是否在obj的原型链中,如果是,返回true,否则返回false。
3.Array.isArray()方法
事实上,js已经提供了一种方法来确定它是否是数组类型,如下所示:
在MDN中,比较isArray和instanceof的区别。在Array.isArray()不可用的情况下,MDN做了如下补丁,说明推荐上面提到的第三种方法object . prototype . tostring . call(obj)。
4.根据对象的类属性(class attribute)跨原型链调用toString()方法。
说明在js中一旦创建了对象,就会在内部携带所创建对象的类型名,一旦创建就不能修改。那么如何获得这个对象的类型名呢?
Js提供,调用对象原型object . prototype . toString . call(obj)中的toString方法;因为很多对象继承的toString()方法都被重写了,为了能够调用正确的toString()版本,也就是原来的版本。可以使用Function.call()的方法,其中call可以这样理解,相当于obj借用了这个object . prototype . tostring();
然后用这种方法,得到的对象名可以这样得到:
或者
推荐教程:java开发入门。以上是java判断对象是否为数组的细节。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。