面试时候被人问如何检测一个未知变量是不是数组类型,丢脸啊,老祖宗的脸都丢没了,这都不会,回家啃书本去吧!!!
var a = [];
方法一:Array.isArray([]) //true
typeof a 在这里是帮不上忙的呦,对于数组类型返回的是object,并且是对于除了函数以外的所有对象都是如此,心累吧,瞎忙活!
方法二:a instanceof Array //true
但是不能视为一个可靠的数组检测方法。
方法三:检测对象的类属性,对于数组来说该属性的值总是‘Array’,
Object.prototype.toString()方法进行判断,因此isArray()函数的代码可以酱紫写
var isArray = Function.isArray || function(o){ return typeof o === ‘object‘ && Object.prototype.toString.call(o) ===‘[object Array]‘; }
原文地址:https://www.cnblogs.com/tangjiao/p/8986696.html
时间: 2024-10-18 17:07:03