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 相关文章推荐
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
Jan 16 Javascript
javascript基本包装类型介绍
Apr 10 Javascript
基于jQuery实现动态数字展示效果
Aug 12 Javascript
基于ajax与msmq技术的消息推送功能实现代码
Dec 26 Javascript
微信小程序 Tab页切换更新数据
Jan 05 Javascript
基于Vue实例对象的数据选项
Aug 09 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
Jun 12 Javascript
javascript实现的时间格式加8小时功能示例
Jun 13 Javascript
element-ui 实现响应式导航栏的示例代码
May 08 Javascript
javascript实现前端成语点击验证
Jun 24 Javascript
javascript实现放大镜功能
Dec 09 Javascript
Promise静态四兄弟实现示例详解
Jul 07 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 无限级数据JSON格式及JS解析
2010/07/17 PHP
PHP MVC框架路由学习笔记
2016/03/02 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
DHTML Slide Show script图片轮换
2008/03/03 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
AngularJS ng-change 指令的详解及简单实例
2016/07/30 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
2016/11/17 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
在vue中使用echarts图表实例代码详解
2018/10/22 Javascript
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
微信小程序转发事件实现解析
2019/10/22 Javascript
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
Python内置random模块生成随机数的方法
2019/05/31 Python
Django Admin中增加导出Excel功能过程解析
2019/09/04 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
html2canvas把div保存图片高清图的方法示例
2018/03/05 HTML / CSS
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
卡西欧B级产品官方网站:Casio Outlet
2018/05/22 全球购物
Melissa鞋英国官方网站:Nonnon
2019/05/01 全球购物
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
食品业务员岗位职责
2014/03/18 职场文书
拖欠货款起诉状
2015/05/20 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
Django cookie和session的应用场景及如何使用
2021/04/29 Python
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android