关于参数类型判断的一个短暂的思考写法

 

关于参数类型判断的api设计也做了很多,jQuery,prototype,tangram也有了很多,今天写个刚才随便写的。贴上

 

 

 

/*
其实关键就是array类型的判断
参数设置为两个
@param elem 要判断的对象或者其他
@param type 是否匹配的对象类型
@当然也有预定 type参数的指定因为和typeof返回比较 所以是小写
*/

function isRType(elem,type){
     //首先去拿typeof elem
     var Etype = typeof elem;
     //安全性防范 如果type没有定义用!undefined == true
     if(!type){
         //拿上面定义的typeof elem 去和undefined
         return Etype != 'undefined';
     }
     //处理array类型
     if(type === 'array' && (elem.hasOwnProperty && elem instanceof Array)){
         //对应array类型的判断稍微复杂一点
         //instanceof 验证原型对象和实例对象之间的关系
         return  true;
     }
     return Etype === type;   //非array类型的之间判断就可以了
}

//array类型判断
isRType([0,1,2],'array'); //true

//string类型判断
isRType('a','string');   //true
isRType('a','array');   //false

//object判断
isRType(window,'array'); //false
isRType(window,'object'); //false

//number类型测试
isRType(1,'number');   //true
isRType('1','number');  //false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值