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