jQuery1.6 类型判断实现代码


Posted in Javascript onSeptember 01, 2011

首先定义了
全局变量class2type = {};
rdigit = /\d/,//正则判断是否是数字
toString = Object.prototype.toString;
通过jQuery.each,定义class2type的属性和值:

jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { 
class2type[ "[object " + name + "]" ] = name.toLowerCase(); 
}); 

type: function( obj ) { 
return obj == null ?String( obj ) :class2type[ toString.call(obj) ] || "object";//js 里一切都是对象,所以可以用toString.call(obj)返回对应对象类型 



//如果直接使用这个方法来判断类型的话,IE下document.getElementById认为是object,其他浏览器则认为是function 



//如果传入的值是NaN的话,会返回"number" 

} 

isFunction: function( obj ) {return jQuery.type(obj) === "function";}//在IE下,如果传入document.getElementById,返回的是false,IE为它是object 

isArray: Array.isArray || function( obj ) {return jQuery.type(obj) === "array";}//如果原生Array拥有isArray方法则使用Array.isArray,否则自定义这个方法 

isWindow: function( obj ) {return obj && typeof obj === "object" && "setInterval" in obj;}//判断是否为window对象 

isNaN: function( obj ) {return obj == null || !rdigit.test( obj ) || isNaN( obj );}// 

isEmptyObject: function( obj ) { 
for ( var name in obj ) {//判断的依据是看对象是否有属性或者方法 
return false; 
} 
return true; 
}
Javascript 相关文章推荐
javascript实现的基于金山词霸网络翻译的代码
Jan 15 Javascript
6个DIV 135或246间隔一秒轮番显示效果
Jul 24 Javascript
javascript 拖动表格行实现代码
May 05 Javascript
js Dialog 实践分享
Oct 22 Javascript
javascript loadScript异步加载脚本示例讲解
Nov 14 Javascript
js判断浏览器类型为ie6时不执行
Jun 15 Javascript
JS合并数组的几种方法及优劣比较
Sep 19 Javascript
jQuery简单实现日历的方法
May 04 Javascript
Bootstrap中表单控件状态(验证状态)
Aug 04 Javascript
HTML5 实现的一个俄罗斯方块实例代码
Sep 19 Javascript
Vue中对比scoped css和css module的区别
May 17 Javascript
js设计模式之单例模式原理与用法详解
Aug 15 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
Sep 01 #Javascript
用javascript作一个通用向导说明
Aug 30 #Javascript
JS 无限级 Select效果实现代码(json格式)
Aug 30 #Javascript
javascript 原型继承介绍
Aug 30 #Javascript
dojo学习第二天 ajax异步请求之绑定列表
Aug 29 #Javascript
非常强大的 jQuery.AsyncBox 弹出对话框插件
Aug 29 #Javascript
新浪微博字数统计 textarea字数统计实现代码
Aug 28 #Javascript
You might like
PHP数字和字符串ID互转函数(类似优酷ID)
2014/06/30 PHP
php+mysql数据库查询实例
2015/01/21 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
js的逻辑运算符 ||
2010/05/31 Javascript
jquery EasyUI的formatter格式化函数代码
2011/01/12 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
2016/12/12 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
vue中appear的用法
2017/08/17 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
Vue全家桶实践项目总结(推荐)
2017/11/04 Javascript
JS实现的数组去除重复数据算法小结
2017/11/17 Javascript
vue购物车插件编写代码
2017/11/27 Javascript
浅谈开发eslint规则
2018/10/01 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
Python使用面向对象方式创建线程实现12306售票系统
2015/12/24 Python
Python中的descriptor描述器简明使用指南
2016/06/02 Python
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
浅析python内置模块collections
2019/11/15 Python
python实现超市商品销售管理系统
2019/11/22 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
CSS3+Sprite实现僵尸行走动画特效源码
2016/01/27 HTML / CSS
印度网上药店:1mg
2017/10/13 全球购物
红领巾心向党广播稿
2014/01/19 职场文书
2014年母亲节演讲稿范文
2014/05/07 职场文书
小学模范班主任事迹材料
2014/05/13 职场文书
中国梦口号
2014/06/13 职场文书
大学生入党积极分子自我评价
2014/09/20 职场文书
校友回访母校寄语
2015/02/26 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
卡特教练观后感
2015/06/08 职场文书
生产设备维护保养制度
2015/08/06 职场文书