JS判断一个对象是不是Array
2016-08-22 19:28
651 查看
typeof 操作符
对于Function, String, Number ,Undefined 等几种类型的对象来说,他完全可以胜任,但是为Array时
你会收到一个object 的答案,有点让人失望。
instanceof 操作符
JavaScript中instanceof运算符会返回一个 Boolean 值,指出对象是否是特定类的一个实例。 使用方法:result = object instanceof class,还是刚刚的数组,再来一次,嗯,成功的返回 true。
小总结:看样子我们今天讨论的问题已经得到了解答,但事实上在多个frame中穿梭就会产生大问题了。
返回结果为两个False,让人大失所望。
于是利用这点,第三种方法登场了。
判断一个对象是否为数组:
对于Function, String, Number ,Undefined 等几种类型的对象来说,他完全可以胜任,但是为Array时
var arr=new Array("1","2","3","4","5"); alert(typeof(arr));
你会收到一个object 的答案,有点让人失望。
instanceof 操作符
JavaScript中instanceof运算符会返回一个 Boolean 值,指出对象是否是特定类的一个实例。 使用方法:result = object instanceof class,还是刚刚的数组,再来一次,嗯,成功的返回 true。
var arrayStr=new Array("1","2","3","4","5"); alert(arrayStr instanceof Array);
小总结:看样子我们今天讨论的问题已经得到了解答,但事实上在多个frame中穿梭就会产生大问题了。
var iframe = document.createElement('iframe'); document.body.appendChild(iframe); xArray = window.frames[window.frames.length-1].Array; var arr = new xArray("1","2","3","4","5");//这个写法IE大哥下是不支持的,FF下才有 alert(arr instanceof Array); // false alert(arr.constructor === Array); // false
返回结果为两个False,让人大失所望。
于是利用这点,第三种方法登场了。
function isArray(obj) { return Object.prototype.toString.call(obj) === '[object Array]'; }
判断一个对象是否为数组:
/** * 判断一个对象是否是数组,参数不是对象或者不是数组,返回false * * @param {Object} arg 需要测试是否为数组的对象 * @return {Boolean} 传入参数是数组返回true,否则返回false */ function isArray(arg) { if (typeof arg === 'object') { return Object.prototype.toString.call(arg) === '[object Array]'; } return false; }
相关文章推荐
- js如何判断一个对象是不是Array?
- js如何判断一个对象是不是Array?
- js如何判断一个对象是不是Array
- js如何判断一个对象是不是Array?
- js如何判断一个对象是不是Array?
- js如何判断一个对象是不是Array?
- js如何判断一个对象是不是Array?
- js如何判断一个对象是不是Array?
- js如何判断一个对象是不是Array?
- js如何判断一个对象是不是Array?
- js如何判断一个对象是不是Array?
- JS如何判断一个对象是不是Array
- js如何判断一个对象是不是Array?
- JS判断对象是不是数组“Array”
- javascript如何判断一个对象是不是Array
- JS判断对象是不是数组“Array”
- 判断一个js对象是不是数组
- js如何判断一个值是不是Array类型
- js如何判断一个对象是array ,instanceof 是基于什么实现的呢?
- js如何判断一个对象是array ,instanceof 是基于什么实现的呢?