JS判断是否是数组

本文介绍了两种在JavaScript中判断一个对象是否为数组的方法:Array.isArray()和自定义方法。由于Array.isArray()在IE8及以下版本不被支持,文章提供了自定义实现的解决方案。还提到了typeof操作符的局限性,并分享了使用Object.prototype.toString方法来判断的原理,鼓励读者深入理解这些方法的工作方式。
摘要由CSDN通过智能技术生成

方法一:
Array.isArray()

把我们要判断的对象传入即可。但此方法IE8和IE8-不支持。

方法二:
不存在 Array.isArray(),则自己创建该方法。

if (!Array.isArray) {
	  Array.isArray = function(arg) {
	    	return Object.prototype.toString.call(arg) === '[object Array]';
	  };
}

参考的是 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
其他方法如instanceof原型链的也是各有缺点,就不推荐了。

另:判断类型首先想到的是typeof,typeof用来判断基础数据类型,像object和array不适用。
和上面判断数组的方法二,对应的判断对象的方法:

	Object.prototype.toString.call(obj) === '[Object Object]'

编写代码可能最初对自己的要求是看懂语法,模仿,会用,但入门以后用的熟悉了,就不想仅仅止步于此,下面是Object.prototype.toString方法实现的原理,了解一些方法的原理其实就像一个探秘的过程。
参考:https://www.jb51.net/article/79941.htm
TODO 这个周末研究后再来补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值