jquery学习笔记一:数据类型判断 之 小疑惑
闲来无事想学下jquery,就扒了下jquery(1.7.2)的源码,看到开头前面的工具函数,有个判断数据类型的挺实用的,就果断摘出来用。
下面两段代码,分别为:
(1)自己从jquery里摘出来的代码,适当修改了下。
(2)jquery里面相关部分的代码,有点小疑惑,写在中文注释部分了,求指导。
代码一:
var util = function(){ var class2Type = {}; var typeArr = "Number String Boolean Array Function RegExp Object Date".split(' '); for(var i=0,len=typeArr.length; i<len; i++){ var type = typeArr[i]; class2Type['[object '+ type+']'] = type.toLowerCase(); } return { type: function(obj){ //jquery里NaN类型没做特殊判断,$.type(NaN)输出为'number',有点不理解 return ( obj == null || isNaN(obj) ) ? String(obj).toLowerCase() : class2Type[Object.prototype.toString.call(obj)] || 'object'; }, isNumber: function(obj){ // return this.type(obj) === 'number'; } }; }();
代码二:
class2type = {}; jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { class2type[ "[object " + name + "]" ] = name.toLowerCase(); });
isNumeric: function( obj ) { //此处若传入参数obj为'1122',结果为true,为何不直接用$.type(obj) === 'number' return !isNaN( parseFloat(obj) ) && isFinite( obj ); },
type: function( obj ) { //如果参数obj为NaN,$.type(NaN)结果为‘number’,是否有误? return obj == null ? String( obj ) : class2type[ toString.call(obj) ] || "object"; },
github博客:https://github.com/chyingp/blog
新浪微博:http://weibo.com/chyingp
站酷主页:http://www.zcool.com.cn/u/346408/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义