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 相关文章推荐
Extjs在exlipse中设置自动提示的方法
Apr 07 Javascript
js点击文本框后才加载验证码实例代码
Oct 20 Javascript
Angularjs分页查询的实现
Feb 24 Javascript
js中toString()和String()区别详解
Mar 23 Javascript
利用JS如何计算字符串所占字节数示例代码
Sep 13 Javascript
js中apply和Math.max()函数的问题及区别介绍
Mar 27 Javascript
webpack v4 从dev到prd的方法
Apr 02 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
Jul 07 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
Dec 06 Javascript
JavaScript实现网页计算器功能
Oct 29 Javascript
浅谈vant组件Picker 选择器选单选问题
Nov 04 Javascript
教你部署vue项目到docker
Apr 05 Vue.js
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 is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
PHP Curl多线程原理实例详解
2013/11/06 PHP
详谈PHP编码转换问题
2015/07/28 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
Prototype Selector对象学习
2009/07/23 Javascript
用Javascript实现锚点(Anchor)间平滑跳转
2009/09/08 Javascript
ext 列表页面关于多行查询的办法
2010/03/25 Javascript
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
js字符编码函数区别分析
2011/12/28 Javascript
JavaScript快速检测浏览器对CSS3特性的支持情况
2012/09/26 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
使用js完成节点的增删改复制等的操作
2014/01/02 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
javascript实时显示北京时间的方法
2015/03/12 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
微信小程序异步处理详解
2017/11/10 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
python去除扩展名的实例讲解
2018/04/23 Python
python发送邮件脚本
2018/05/22 Python
python 装饰器功能与用法案例详解
2020/03/06 Python
使用python创建生成动态链接库dll的方法
2020/05/09 Python
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
西班牙自行车和跑步商店:Alltricks
2018/07/07 全球购物
Schecker荷兰:狗狗用品和配件
2019/06/06 全球购物
C语言笔试题回忆
2015/04/02 面试题
征婚广告词
2014/03/17 职场文书
乡村文明行动实施方案
2014/03/29 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书