JS判断是否是数组

方法一:
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 这个周末研究后再来补充。

你可能感兴趣的:(javascript)