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 相关文章推荐
Jsonp 跨域的原理以及Jquery的解决方案
Jun 27 Javascript
jQuery选择器的工作原理和优化分析
Jul 25 Javascript
JS简单限制textarea内输入字符数量的方法
Oct 14 Javascript
原生JavaScript实现滚动条效果
Mar 24 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
Jun 17 Javascript
jQuery.Form上传文件操作
Feb 05 Javascript
js绑定事件和解绑事件
Apr 27 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
Jan 23 jQuery
详解vue2.0 资源文件assets和static的区别
Nov 27 Javascript
详解小程序用户登录状态检查与更新实例
May 15 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
Aug 04 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
Aug 10 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
DOMXML函数笔记
2006/10/09 PHP
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
PHP中对用户身份认证实现两种方法
2011/06/04 PHP
php自定文件保存session的方法
2014/12/10 PHP
php实现的SSO单点登录系统接入功能示例分析
2016/10/12 PHP
Laravel框架实现利用监听器进行sql语句记录功能
2018/06/06 PHP
laravel框架与其他框架的详细对比
2019/10/23 PHP
javascript写的一个链表实现代码
2009/10/25 Javascript
多浏览器兼容的获取元素和鼠标的位置的js代码
2009/12/15 Javascript
js类型检查实现代码
2010/10/29 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
jquery ready(fn)事件使用介绍
2013/08/21 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
使用python装饰器验证配置文件示例
2014/02/24 Python
Python实现的ini文件操作类分享
2014/11/20 Python
python遍历类中所有成员的方法
2015/03/18 Python
Python中的random()方法的使用介绍
2015/05/15 Python
Python编程之序列操作实例详解
2017/07/22 Python
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
Python编译成.so文件进行加密后调用的实现
2019/12/23 Python
python音频处理的示例详解
2020/12/23 Python
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
四种会话跟踪技术
2015/05/20 面试题
施工班组长岗位职责
2014/01/05 职场文书
一个大学生十年的职业规划
2014/01/17 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
坚守艰苦奋斗精神坚决反对享乐主义整改措施
2014/09/17 职场文书
什么是检讨书?检讨书的格式及范文
2019/11/05 职场文书
高一作文之暖冬
2019/11/09 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python