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 相关文章推荐
XP折叠菜单&仿QQ2006菜单
Dec 16 Javascript
超棒的javascript页面顶部卷动广告效果
Dec 01 Javascript
js对象数组按属性快速排序
Jan 31 Javascript
理解Javascript闭包
Nov 01 Javascript
解决Extjs4中form表单提交后无法进入success函数问题
Nov 26 Javascript
自编jQuery插件实现模拟alert和confirm
Sep 01 Javascript
原生JS实现LOADING效果
Mar 16 Javascript
bootstrap中添加额外的图标实例代码
Feb 15 Javascript
Node.js连接mongodb实例代码
Jun 06 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
Sep 11 Javascript
js数组方法reduce经典用法代码分享
Jan 07 Javascript
js异步接口并发数量控制的方法示例
Nov 22 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设计模式中的工厂模式
2008/06/12 PHP
PHP 批量删除 sql语句
2009/06/05 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
2014/01/09 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
2019/04/10 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
event对象获取方法总结在google浏览器下测试
2013/11/03 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
jquery实现文本框的禁用和启用
2016/12/07 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
js实现3D图片展示效果
2017/03/09 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
2017/04/07 Javascript
js实现图片懒加载效果
2017/07/17 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
js设置默认时间跨度过程详解
2019/07/17 Javascript
vue实现折线图 可按时间查询
2020/08/21 Javascript
vue+swiper实现左右滑动的测试题功能
2020/10/30 Javascript
python字符串连接的N种方式总结
2014/09/17 Python
Python入门篇之面向对象
2014/10/20 Python
Python第三方库的安装方法总结
2016/06/06 Python
python中单下划线_的常见用法总结
2018/07/10 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
利用Canvas模仿百度贴吧客户端loading小球的方法示例
2017/08/13 HTML / CSS
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
Linux如何压缩可执行文件
2013/10/21 面试题
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
实习指导老师评语
2014/04/26 职场文书
活动总结怎么写啊
2014/05/07 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python