javascript数据类型验证方法_javascript技巧

最近对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> 

以下主要是对判断javascript的数据类型进行了详细的介绍,分为六种数据类型,需要的朋友可以过来参考下,希望对大家有所帮助
1、判断是否为数组类型
代码如下:

<STRONG><script type="text/javascript">
//<![CDATA[
var a=[0];
document.write(isArray(a),'<br/>');
function isArray(obj){
return (typeof obj=='object')&&obj.constructor==Array;
}
//]]>
</script></STRONG>

2 判断是否为字符串类型
代码如下:

<script type="text/javascript">
//<![CDATA[
document.write(isString('test'),'<br/>');
document.write(isString(10),'<br/>');
function isString(str){
return (typeof str=='string')&&str.constructor==String;
}
//]]>
</script>

3 判断是否为数值类型
代码如下:

<script type="text/javascript">
//<![CDATA[
document.write(isNumber('test'),'<br/>');
document.write(isNumber(10),'<br/>');
function isNumber(obj){
return (typeof obj=='number')&&obj.constructor==Number;
}
//]]>
</script>

4 判断是否为日期类型
代码如下:

<script type="text/javascript">
//<![CDATA[
document.write(isDate(new Date()),'<br/>');
document.write(isDate(10),'<br/>');
function isDate(obj){
return (typeof obj=='object')&&obj.constructor==Date;
}
//]]>
</script>

5 判断是否为函数
代码如下:

<script type="text/javascript">
//<![CDATA[
document.write(isFunction(function test(){}),'<br/>');
document.write(isFunction(10),'<br/>');
function isFunction(obj){
return (typeof obj=='function')&&obj.constructor==Function;
}
//]]>
</script>

6 判断是否为对象
代码如下:

<script type="text/javascript">
linenum
//<![CDATA[
document.write(isObject(new Object()),'<br/>');
document.write(isObject(10),'<br/>');
function isObject(obj){
return (typeof obj=='object')&&obj.constructor==Object;
}
//]]>
</script>

希望本文所述对大家学习javascript程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索javascript
, 验证
数据类型
javascript 验证、javascript 数据类型、javascript 类型转换、javascript表单验证、javascript 变量类型,以便于您获取更多的相关知识。

时间: 2025-01-03 07:54:57

javascript数据类型验证方法_javascript技巧的相关文章

浅谈javascript中replace()方法_javascript技巧

定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串.语法stringObject.replace(regexp/substr,replacement) 返回值 一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的.说明 字符串 stringObject 的 replace() 方法执行的是查找并替换的操作.它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 r

浅析创建javascript对象的方法_javascript技巧

一.工厂模式 function person (name,age) { var p=new Object(); p.name=name; p.age=age; p.showMessage=function(){ console.log("name:"+this.name+" age:"+this.age); } return p; } var p1=person("k1",28); var p2=person("k2",29)

浅析JavaScript事件和方法_javascript技巧

单击一个超链接触发事件 1.用a标签的onclick <a href="#" onclick="js代码"> 这种写法呢,存在一种弊端,就是点击后会刷新一次页面,回到页面顶端. 想不刷新如何做的呢? 复制代码 代码如下: <a href="javascript:void(0)" onclick="js代码"> 2.#与javascript:void(0)的区别 超链接为"死链"时,使

JavaScript自定义数组排序方法_javascript技巧

本文实例讲述了JavaScript自定义数组排序方法.分享给大家供大家参考.具体分析如下: Array中有自带的排序功能,这个使用起来比较方便,我们有一点必须清楚,就是排序的依据,如果sort不传入参数的话,那就是按照字符编码(Unicode编码)的顺序排序. var a=["3","2","1"]; console.log(a[0].charCodeAt(0)); // 51 console.log(a[1].charCodeAt(0)); /

同一个网页中实现多个JavaScript特效的方法_javascript技巧

本文实例讲述了同一个网页中实现多个JavaScript特效的方法.分享给大家供大家参考.具体分析如下: 一般来说,在网页中,如果出现两次<script type="text/javascript"></script>标签,所有的JavaScipt脚本都不会再生效,只能出现一次<script type="text/javascript"></script>标签,但是,同一个网页中常常需要多个JavaScript特效. 一

JavaScript Math.round() 方法_javascript技巧

 Math.round()方法的定义和用法: Math.round()方法将对参数进行四舍五入操作. 点击可参阅更多相关Math对象方法和属性. 语法结构: Math.round(x) 参数列表: 参数 描述 x 必需.必须是数值类型. 实例代码: 实例一: 复制代码 代码如下: console.log(Math.round(-2.1)); 输出结果:-2. 实例二: 复制代码 代码如下: console.log(Math.round(-2.9)); 输出结果:-3. 实例三: 复制代码 代码如

异步安全加载javascript文件的方法_javascript技巧

本文实例讲述了异步安全加载javascript文件的方法.分享给大家供大家参考.具体如下: 使用方法: (function() { __safeLoadScript("http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js", function() { alert(jQuery); }); })(); JavaScript实现代码: window.__safeLoadScript = function(src, c

Javascript之面向对象--方法_javascript技巧

JavaScript面向对象是近年来比较火的一个概念了,由于小弟才疏学浅,虽然做过不少的web项目,看了网上很多深奥的资料和教程,还是对他们深奥的理论一知半解,前段时间看了点书,总算有了自己的理解,今天也出来装一回,如果觉得很深奥,请直接鄙视我,如果觉得不对,请直接拍砖. 先通俗了解下面一些东西. 在JS代码中写入function fn(){}或者var fn=function(){}等等,你都可以将其理解为对象,当然还有数组等等. 在理解面向对象之前,先了解下面几个东西吧. 1.对象方法的调用

详解Javascript数据类型的转换规则_javascript技巧

一.数据类型 5种基本数据类型:Null/Undefined/String/Boolean/Number 1种复杂数据类型:Object 二.数据类型检测 传送门<JS中检测数据类型的几种方式及优缺点小结> 1.typeof 2.instanceof/constructor 3.Object.prototype.toString.call(value) 4.Object.prototype.toString 三.数据类型转换 JS内部提供不同数据类型的自动转换机制,在某处预期为某种类型而不是某