今天笔试题碰到一个问题是js中判断是Array类型
Array属于引用类型,是不能够用typeof来判断的,用来判断的方法如下
1.用instanceof来判断
var arr=[1,2,3];
arr instanceof Array; //true
2.constructor属性
每个对象都有constructor属性可以用来判断是否是Array类型;
var arr=[1,2,3];
arr.constructor===Array;//true
以上两种判断方法都非常的方便,但是如果是在多个frame中的话是无法判断成功的,因为每个iframe都有自己的执行环境,不共享原型链,因此在为大家推荐两种方法
1.Object.prototype.toString
var arr=[1,2];
Object.prototype.toString.call(arr)==='[object Array]';//true
为了方便使用也可以封装为一个函数使用
function isArray(arr){
return Object.prototype.toString.call(arr)=='[object Array]';
}
2.Array.isArray();
Es5将其加入到js中来判断是都为一个数组
如有不对欢迎指正,一起成长一起学习