您的位置:首页 > Web前端 > JavaScript

javascript验证数据类型

2015-07-02 09:27 471 查看
最近通过对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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: