javascript验证数据类型

最近通过对Underscore.js源码的学习,对javascript数据类型的验证又有了一个新的认识,原来可以判断得这么简单又如此全面。

我们自定义了isString,isNumber ,isDate ,isError ,isRegExp ,isBoolean ,isNull ,isUndefined ,isObject等方法。现在将自己定义的javascript数据类型验证函数及测试集展示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		
	</body>
<script type="text/javascript">
//isString
//isNumber
//isDate
//isError
//isRegExp
//直接利用和数据类型来判断
[].forEach.call(['String','Number','Date','Error','RegExp'],function(name){
	this['is'+name]=function(obj){
		return toString.call(obj)==='[object '+name+']';
	};
});
//isBoolean
//true和false需要考虑在内
Object.prototype.isBoolean=function(obj){
	return obj===true||obj===false||toString.call(obj)==='[object Boolean]';
};
//isNull
//未找到所指向对象
Object.prototype.isNull=function(obj){
	return obj===null;
};
//isUndefined
//定义了但是未赋值
Object.prototype.isUndefined=function(obj){
	return obj===void 0;
};
//isObject
//函数和数组都是对象
Object.prototype.isObject=function(obj){
	var type = typeof obj;
	return type === 'function' || type === 'object' && !!obj;
};

//test
//isString
var str="iamstring";
var a=isString(str);
console.log(a);//true

//isNumber
var b=isNumber(a);
console.log(b);//false

//isNumber
var num=4;
var c=isNumber(num);
console.log(c);//true

//isRegExp
var reg=/^[1-9]/;
var d=isRegExp(reg);
console.log(d);//true

//isDate
var date=new Date();
var e=isDate(date);
console.log(e);//true

//isBoolean
var bool=false;
var f=isBoolean(bool);
console.log(f);//true

//isNull
var nul=document.getElementById("div02");
var g=isNull(nul);
console.log(g);//true

//isUndefined
var undef;
var h=isUndefined(undef);
console.log(h);//true

//isObject
var obj={"1":"1","2":"2"};
var i=isObject(obj);
console.log(i);//true

</script>
</html>

代码的位置在:

http://runjs.cn/code/ucwpitro


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值