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 对象成员的可见性说明
Oct 16 Javascript
JavaScript解析URL参数示例代码
Aug 12 Javascript
jQuery中innerWidth()方法用法实例
Jan 19 Javascript
jQuery手机拨号界面特效代码分享
Aug 27 Javascript
如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)
Feb 23 Javascript
vue双花括号的使用方法 附练习题
Nov 07 Javascript
JS交互点击WKWebView中的图片实现预览效果
Jan 05 Javascript
Node.js静态服务器的实现方法
Feb 28 Javascript
你点的 ES6一些小技巧,请查收
Apr 25 Javascript
微信小程序实现炫酷的弹出式菜单特效
Jan 28 Javascript
Vue中的transition封装组件的实现方法
Aug 13 Javascript
JS Object构造函数之Object.freeze
Apr 28 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/08/21 PHP
PHP数组交集的优化代码分析
2011/03/06 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
2014/01/09 PHP
destoon复制新模块的方法
2014/06/21 PHP
php实现的替换敏感字符串类实例
2014/09/22 PHP
PHP中->和=>的含义及使用示例解析
2020/08/06 PHP
如何在Web页面上直接打开、编辑、创建Office文档
2007/03/12 Javascript
JavaScript中的作用域链和闭包
2012/06/30 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
2013/09/10 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
js实现数组冒泡排序、快速排序原理
2016/03/08 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
浅谈jQuery效果函数
2016/09/16 Javascript
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
2018/05/17 Javascript
vue 组件的封装之基于axios的ajax请求方法
2018/08/11 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
[20:30]职业巡回赛回顾
2018/08/09 DOTA
浅谈python中的占位符
2017/11/09 Python
对Python3中的input函数详解
2018/04/22 Python
终端命令查看TensorFlow版本号及路径的方法
2018/06/13 Python
python3.4 将16进制转成字符串的实例
2019/06/12 Python
Python2与Python3的区别详解
2020/02/09 Python
python更新数据库中某个字段的数据(方法详解)
2020/11/18 Python
蔻驰法国官网:COACH法国
2018/11/14 全球购物
Charles & Colvard官网:美国莫桑石品牌
2019/06/05 全球购物
机关财务管理制度
2014/01/17 职场文书
教师对照四风自我剖析材料
2014/09/30 职场文书
2014年计生协会工作总结
2014/11/21 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书
MySQL注入基础练习
2021/05/30 MySQL
spring 项目实现限流方法示例
2022/07/15 Java/Android