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 ajax获取网站Alexa排名的代码
Dec 12 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
Apr 16 Javascript
jquery实现图片水平滚动效果代码分享
Aug 26 Javascript
Angular 路由route实例代码
Jul 12 Javascript
jQuery内容筛选选择器实例代码
Feb 06 Javascript
微信小程序 定位到当前城市实现实例代码
Feb 23 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
Mar 13 Javascript
vue 2.0路由之路由嵌套示例详解
May 08 Javascript
浅谈Vue.nextTick 的实现方法
Oct 25 Javascript
vue中的scope使用详解
Oct 29 Javascript
JS实现的类似微信聊天效果示例
Jan 29 Javascript
深入webpack打包原理及loader和plugin的实现
May 06 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超级全局变量
2010/01/26 PHP
php数字转汉字代码(算法)
2011/10/08 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
2013/12/03 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
javascript学习基础笔记之DOM对象操作
2011/11/03 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
详解JavaScript中Hash Map映射结构的实现
2016/05/21 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
vue滚动tab跟随切换效果
2020/06/29 Javascript
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
Python中使用pprint函数进行格式化输出的教程
2015/04/07 Python
Python多进程同步简单实现代码
2016/04/27 Python
一步步教你用Python实现2048小游戏
2017/01/19 Python
python版本的仿windows计划任务工具
2018/04/30 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
基于Python中isfile函数和isdir函数使用详解
2019/11/29 Python
PyCharm 2019.3发布增加了新功能一览
2019/12/08 Python
Django查询优化及ajax编码格式原理解析
2020/03/25 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
奥巴马英文演讲稿
2014/05/15 职场文书
上课不认真检讨书
2014/09/17 职场文书
结婚十年感言
2015/07/31 职场文书
感恩教师主题班会
2015/08/12 职场文书
2019年新郎保证书3篇
2019/10/17 职场文书
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS
Python使用华为API为图像设置多个锚点标签
2022/04/12 Python