您的位置:首页 > Web前端 > JavaScript

【js学习笔记-044】-- 数组类型

2013-07-25 18:01 246 查看
ECMAScript5:判断数组类型

Array.isArray([]) ; //=>true

Array.isArray({}); //=>false

但ECMAScript5之前:

区分数组和非数组对象却很困难,typeof操作符这里帮不上忙:数组返回对象,并且除函数以外的所有对象都是如此。

instanceof也只能用于简单情形如:

[] instanceof Array; //=>true;

({}) instanceof Array ; //=>false;

注意会有这样一种情况,浏览器中有可能有多个窗口,窗体(frame)存在。每个窗口都有自己的 js环境,有自己的全局对象。并且,每个全局对象有自己的一组构造函数。因此一个窗体的对象将不可能是另外窗体中的构造函数的实例。窗体之间的混淆不常发生,但这个问题中已证明instanceof操作符不能视为一个可靠的数组检测方法

ECMAScript3解决方案:通过查询ECMASCript3中的isArray()函数代码可如下

var isArray = Function.isArray || function(o){

return typeof o=== “object” &&

Object.prototype.toString.call(o)=== “[object Array]”;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: