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中的object转换成number或string规则介绍
Dec 31 Javascript
JS实现自动切换文字的导航效果代码
Aug 27 Javascript
基于JavaScript实现仿京东图片轮播效果
Nov 06 Javascript
jQuery解析json数据实例分析
Nov 24 Javascript
Angularjs注入拦截器实现Loading效果
Dec 28 Javascript
Bootstrap CSS布局之按钮
Dec 17 Javascript
JavaScript箭头函数_动力节点Java学院整理
Jun 28 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
Jul 28 Javascript
JS返回顶部实例代码
Aug 09 Javascript
微信小程序JS加载esmap地图的实例详解
Sep 04 Javascript
js实现点赞效果
Mar 16 Javascript
vue使用video插件vue-video-player的示例
Oct 03 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
shopex中集成的站长统计功能的代码简单分析
2011/08/11 PHP
PHP获取一个字符串中间一部分字符的方法
2014/08/19 PHP
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
javascript StringBuilder类实现
2008/12/22 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
json原理分析及实例介绍
2012/11/29 Javascript
JS脚本defer的作用示例介绍
2014/01/02 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
2014/01/14 Javascript
javascript瀑布流布局实现方法详解
2016/02/17 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
vue-cli项目中使用echarts图表实例
2018/10/22 Javascript
ES6如何用一句代码实现函数的柯里化
2020/01/18 Javascript
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
[41:11]完美世界DOTA2联赛PWL S2 Inki vs Magma 第一场 11.22
2020/11/24 DOTA
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
python绘制直线的方法
2018/06/30 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
Python+OpenCV实现图像的全景拼接
2020/03/05 Python
jupyter notebook 多行输出实例
2020/04/09 Python
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
丝芙兰波兰:Sephora.pl
2018/03/25 全球购物
2014年公司庆元旦活动方案
2014/03/05 职场文书
销售总经理岗位职责
2014/03/15 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
建筑工程材料员岗位职责
2015/04/11 职场文书
河童之夏观后感
2015/06/11 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
深度学习详解之初试机器学习
2021/04/14 Python
win10下go mod配置方式
2021/04/25 Golang
用Java实现简单计算器功能
2021/07/21 Java/Android
Win11 BitLocker 驱动器加密
2022/04/19 数码科技