javascript判断一个元素是否数组
来源:stauren.net 时间:2009-07-31 12:48:00
javascript中要判断一个变量是否为array通常是比较困难的,因为
var a = [];
alert(typeof a === 'object'); // true
通常的做法是判断
a.constructor === Array // true
可是这个方法有一个问题,如果一个数组是来自另一个frame中的,那么它的constructor 将是另一个对象。
YUI中用了如下的方法:
isArray: function(o) {
if (o) {
return L.isNumber(o.length) && L.isFunction(o.splice);
}
return false;
},
简单来说,就是判断这个变量有没有 length 属性,同时有没有 splice 方法。可惜,这样的判断方法是可以用一个 object 来伪造数组的。
Google 的 Mark Miller 发现,用下面方法,可以简单又可靠的得到一个变量是否一个数组:
Object.prototype.toString.apply(value) === '[object Array]'
simple & easy, 我已经在 d-u 中加入这个方法了,相信其他 library 也会渐渐采用这个方法的。
from The Miller Device
使用 d-u javascript library, 敬请访问 http://code.google.com/p/double-underscore/source/browse/#svn/trunk/src
标签:JavaScript,数组,判断
0
投稿
猜你喜欢
特别推荐:Web开发常用速查手册大全(100+)
2011-05-06 12:44:00
Google谷歌的CSS前景图片合并技术
2009-07-13 12:21:00
SQLServer 游标简介与使用说明
2009-07-02 13:53:00
asp截取字符串方法
2009-02-09 13:30:00
em与px的区别以及em特点和应用
2008-11-11 12:03:00
HTML5 Canvas 起步(1) - 基本概念
2009-04-21 13:14:00
SQL Server 总结复习(一)
2012-10-07 11:04:02
Dreamweaver表格布局经验谈
2007-02-03 11:39:00
js页面文字选中后分享到新浪微博实现
2011-03-17 12:55:00
asp利用aspjpeg给图片生成PNG透明水印
2009-03-20 14:01:00
教你快速掌握怎样在Windows下升级MySQL
2008-12-31 17:08:00
微软工程师讲解SQL server阻塞
2008-01-05 14:02:00
善用用户反馈——浅谈用户反馈数据的处理
2010-07-09 16:58:00
MySQL配置文件my.cnf中文版
2011-09-30 11:06:15
LZ77 算法的JS实现
2010-04-11 22:32:00
Oracle数据库的空间管理技巧
2010-07-26 13:16:00
XMLHTTP错误The server name or address could not be resolved 的解决过程
2009-12-26 18:33:00
Window.Open详解
2008-06-08 13:43:00
centos 安装mysql中遇到问题的解决办法
2010-12-14 15:11:00
HTML5 的五个激动人心的特性
2009-01-02 17:36:00