博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
extjs源码分析(js类型判断)
阅读量:7252 次
发布时间:2019-06-29

本文共 1799 字,大约阅读时间需要 5 分钟。

hot3.png

Ext = {};

//Ext.apply = function(o,c,d){}//见extjs源码分析-001(Ext.apply)
var toString = Object.prototype.toString
Ext.apply(Ext, { 
        //isFinite --->返回true 表示值是非 NaN 、非负无穷和非正无穷
       isNumber : function(v){//是否为数字
            return typeof v === 'number' && isFinite(v);
        },
       isBoolean : function(v){//是否为布尔值
            return typeof v === 'boolean';
        },
       isString : function(v){//是否为字符串
            return typeof v === 'string';
       },
       isNumber : function(v){//是否在有限的数组范围内,不包括无穷大/小
            return typeof v === 'number' && isFinite(v);
        },
       isFunction : function(v){//是否为Function类型
            return toString.apply(v) === '[object Function]';
        },
       isPrimitive : function(v){//判断V的值是否为基本数据类型(数字/字符串/布尔值)
            return Ext.isString(v) || Ext.isNumber(v) || Ext.isBoolean(v);
        },
       isObject : function(v){//判断是否为对象类型
            return !!v && Object.prototype.toString.call(v) === '[object Object]';
        },
        isDate : function(v){//判断v是否为日期对象
            return toString.apply(v) === '[object Date]';
        },
        isArray : function(v){//判断v的类型是否为数组
            return toString.apply(v) === '[object Array]';
        },
       isEmpty : function(v, allowBlank){//判断V是否为空,如果v的值为null,或者v的值未定义,或者v是空数组,或者v的值允许为空则返回空字符串
            return v === null || v === undefined || ((Ext.isArray(v) && !v.length)) || (!allowBlank ? v === '' : false);
        },
       isDefined : function(v){//v-->判断V是否定义
            return typeof v !== 'undefined';
        },
        isElement : function(v) {//返回是否为html元素节点对象
            return v ? !!v.tagName : false;
        },
        isIterable : function(v){//是否可以迭代
            //check for array or arguments //数组 或者 多个参数
            if(Ext.isArray(v) || v.callee){
                return true;
            }
            //check for node list type //节点数组
            if(/NodeList|HTMLCollection/.test(toString.call(v))){
                return true;
            }
            //NodeList has an item and length property 节点下有节点项            //IXMLDOMNodeList has nextNode method, needs to be checked first.
            return ((typeof v.nextNode != 'undefined' || v.item) && Ext.isNumber(v.length));
        },
})

转载于:https://my.oschina.net/kkrgwbj/blog/313730

你可能感兴趣的文章
cmake简明使用指南
查看>>
计算机操作系统
查看>>
MariaDB mysql 比较区别 选择
查看>>
【EF】Entity Framework Core 命名约定
查看>>
Java中net.sf.json包关于JSON与对象互转的坑
查看>>
Linux配置快捷方式路径
查看>>
[LeetCode] My Calendar III 我的日历之三
查看>>
wp rest api 授权方法步骤(使用JWT Authentication插件)
查看>>
优化查询的方式
查看>>
Eclipse 2017最佳20个插件
查看>>
6.控制器(ng-Controller)
查看>>
Android项目实战(四十八):架构之组件化开发
查看>>
平安容器云平台 Padis--传统金融企业的 Docker 实践
查看>>
js 实现遮罩某一部分
查看>>
042 spring boot在启动之后,自动关闭
查看>>
性能调优3:硬盘IO性能
查看>>
Comet:基于 HTTP 长连接的“服务器推”技术 先记一笔 以后有时间看看
查看>>
微软Windows 8最新幻灯片泄露
查看>>
C# winfrom动态加载TreeView控件
查看>>
贝塞尔曲线:如何让一个正在按照贝塞尔曲线运动的精灵减速或加速(动画结束回调)...
查看>>