JavaScript 实现Array.isArray

实现效果

实现原生 JavaScript 中的Array.isArray()方法,使用如下:

console.log(Array.isArray([])); // true
console.log(Array.isArray({})); // false
console.log(Array.isArray(123)); // false
console.log(Array.isArray('123')); // false

实现过程

通过Object.prototype.toString.call(),获取数据类型

console.log(Object.prototype.toString.call('123')); // [object String]
console.log(Object.prototype.toString.call([])); // [object Array]
console.log(Object.prototype.toString.call({})); // [object Object]
console.log(Object.prototype.toString.call(/123/)); // [object RegExp]
console.log(Object.prototype.toString.call(123)); // [object Number]
console.log(Object.prototype.toString.call(new Date())); // [object Date]

所以,可以通过Object.prototype.toString.call()得到数据类型,判断是否为[object Array]即可。

Array对象中添加自己的方法myIsArray()

Array.myIsArray = function(obj) {
    return Object.prototype.toString.call(obj) === '[object Array]';
}

验证

console.log(Array.myIsArray([])); // true
console.log(Array.myIsArray({})); // false
console.log(Array.myIsArray(123)); // false
console.log(Array.myIsArray('123')); // false

完成!


版权声明:本文为Jack_lzx原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。