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下arguments,caller,callee,call,apply示例及理解
Dec 24 Javascript
Javascript Function对象扩展之延时执行函数
Jul 06 Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
Apr 12 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
Jul 09 Javascript
深入理解JavaScript中的传值与传引用
Dec 09 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
May 05 Javascript
Egret引擎开发指南之发布项目
Sep 03 Javascript
巧用数组制作图片切换js代码
Nov 29 Javascript
Angularjs 动态改变title标题(兼容ios)
Dec 29 Javascript
layer.open关闭父窗口 以及调用父页面的方法
Aug 17 Javascript
详解Vue中watch对象内属性的方法
Feb 01 Javascript
基于Vue实现平滑过渡的拖拽排序功能
Jun 12 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 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
2011/03/28 PHP
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
PHP strtotime函数用法、实现原理和源码分析
2015/02/04 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
通过源码解析Laravel的依赖注入
2018/01/22 PHP
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
jQuery-serialize()输出序列化form表单值的方法
2012/12/26 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
node.js中的fs.fchmod方法使用说明
2014/12/16 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
JS 动态判断PC和手机浏览器实现代码
2016/09/21 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
JavaScript订单操作小程序完整版
2017/06/23 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
JavaScript 中的无穷数(Infinity)详解
2020/02/13 Javascript
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
jQuery实现评论模块
2020/08/19 jQuery
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
老生常谈Python进阶之装饰器
2017/05/11 Python
numpy排序与集合运算用法示例
2017/12/15 Python
Python自定义线程类简单示例
2018/03/23 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
Python基于httpx模块实现发送请求
2020/07/07 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
介绍一下Make? 为什么使用make
2013/12/08 面试题
高分子材料个人求职信范文
2013/09/25 职场文书
大学本科毕业生的自我鉴定范文
2013/11/19 职场文书
幼儿园安全检查制度
2014/01/30 职场文书
六一儿童节活动总结
2014/08/27 职场文书