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不能解析json对象,报Invalid JSON错误的原因和解决方法
Mar 27 Javascript
javascript 基础篇2 数据类型,语句,函数
Mar 14 Javascript
基于jquery异步传输json数据格式实例代码
Nov 23 Javascript
JS实现控制表格行文本对齐的方法
Mar 30 Javascript
JavaScript中两个字符串的匹配
Jun 08 Javascript
javascirpt实现2个iframe之间传值的方法
Jun 30 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
Jun 01 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
May 03 Javascript
js 实现watch监听数据变化的代码
Oct 13 Javascript
基于ts的动态接口数据配置的详解
Dec 18 Javascript
openlayers实现地图弹窗
Sep 25 Javascript
在react-antd中弹出层form内容传递给父组件的操作
Oct 24 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远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
基于PHPexecl类生成复杂的报表表头示例
2016/10/14 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
用js+xml自动生成表格的东西
2006/12/21 Javascript
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
用js生产批量批处理执行命令
2008/07/28 Javascript
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
JS长整型精度问题实例分析
2015/01/13 Javascript
JS通过ajax动态读取xml文件内容的方法
2015/03/24 Javascript
JavaScript操作XML文件之XML读取方法
2015/06/09 Javascript
自定义刻度jQuery进度条及插件
2015/09/02 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
layer实现弹窗提交信息
2016/12/12 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
2018/09/03 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
vue滚动tab跟随切换效果
2020/06/29 Javascript
vue+eslint+vscode配置教程
2019/08/09 Javascript
分分钟入门python语言
2018/03/20 Python
Python编程中flask的简介与简单使用
2018/12/28 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
Python tcp传输代码实例解析
2020/03/18 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
sklearn的predict_proba使用说明
2020/06/28 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
Python使用内置函数setattr设置对象的属性值
2020/10/16 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
英国DIY和家居装饰领域的主要品牌:Wickes
2019/11/26 全球购物
秋季运动会加油稿200字
2014/01/11 职场文书
任命书格式
2014/06/05 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书
优秀的商业计划书,让融资一步到位
2019/05/07 职场文书
Golang中interface{}转为数组的操作
2021/04/30 Golang