xml地图|网站地图|网站标签 [设为首页] [加入收藏]

浅谈javascript的数据类型检测,JavaScript数据类型判

来源:http://www.ccidsi.com 作者:最新解决方案 人气:124 发布时间:2019-09-19
摘要:一、javascript的数据 javascript的多少分为三种:简单多少和复杂性数据。轻巧多少包罗number,string,boolean,undefined和null这各样;复杂数据只有一种即object。【此处友情鸣谢李战先生,悟

一、javascript的数据
javascript的多少分为三种:简单多少和复杂性数据。轻巧多少包罗number,string,boolean,undefined和null这各样;复杂数据只有一种即object。【此处友情鸣谢李战先生,<<悟透JavaScript>>写得太逼真,影象太深远了】

JavaScript的数据

二、javascript的数据类型检查评定
1、万能的typeof
大家先测量检验一下通过typeof来赢得轻便数据类型。什么也别说了,上代码是王道:

        JavaScript的数目分为三种:轻巧多少和错综复杂数据。轻松多少满含number,string,boolean,undefined和null那四种;复杂数据独有一种即object。

复制代码 代码如下:

万能的typeof

// 获取变量obj的数据类型
function getType(obj) {
return typeof (obj);
}
/*常量获取项目*/
alert(getType(1)); //number
alert(getType("jeff wong")); //string
alert(getType(true)); //boolean
alert(getType(undefined)); //undefined
alert(getType(null)); //object
/*变量获取项目*/
var num = 1;
var str = "jeff wong";
var flag = true;
var hell = undefined;
var none = null;
alert(getType(num)); //number
alert(getType(str)); //string
alert(getType(flag)); //boolean
alert(getType(hell)); //undefined
alert(getType(none)); //object

咱俩先测验一下由此typeof来获得轻松数据类型。什么也别说了,上代码是王道:

正如你所观看的那么,通过typeof运算符,前边两个简易数据类型完全在预料之中,不过typeof null却重返object。应该注意到,null是null类型的天下无双值,但null并非object,具备null值的变量也并不是object,所以平素通过typeof,并不能科学获得null类型。 要精确获取轻松数据类型,只要在getType的地点加点立异就足以了:

// 获取变量obj的数据类型

function getType(obj) {

return typeof (obj);

}

/*常量获取项目*/

alert(getType(1)); //number

alert(getType("jeff wong")); //string

alert(getType(true)); //boolean

alert(getType(undefined)); //undefined

alert(getType(null)); //object

/*变量获取项目*/

var num = 1;

var str = "jeff wong";

var flag = true;

var hell = undefined;

var none = null;

alert(getType(num)); //number

alert(getType(str)); //string

alert(getType(flag)); //boolean

alert(getType(hell)); //undefined

alert(getType(none)); //object

复制代码 代码如下:

        正如您所观察的那样,通过typeof运算符,前边五个简易数据类型完全在预期之中,不过typeof null却回到object。应该注意到,null是null类型的独一值,但null并非object,具有null值的变量也而不是object,所以直接通过typeof,并无法正确得到null类型。 要准确获取轻易数据类型,只要在getType的地点加点立异就可以了:

function getType(obj) {
return (obj === null) ? "null" : typeof (obj);
}

function getType(obj) {

return (obj === null) ? "null" : typeof (obj);

}

跟着来试一下头昏眼花数据类型object:

紧接着来试一下繁杂数据类型object:

复制代码 代码如下:

function Cat() {

}

Cat.prototype.CatchMouse = function () {

//do some thing

}

// 获取变量obj的数据类型

function getType(obj) {

return (obj === null) ? "null" : typeof (obj);

}

var obj = new Object();

alert(getType(obj)); //object

var func = new Function();

alert(getType(func)); //function

var str = new String("jeff wong");

alert(getType(str)); //object

var num = new Number(10);

alert(getType(num)); //object

var time = new Date();

alert(getType(time)); //object

var arr = new Array();

alert(getType(arr)); //object

var reg = new RegExp();

alert(getType(reg)); //object

var garfield = new Cat();

alert(getType(garfield)); //object

function Cat() {
}
Cat.prototype.CatchMouse = function () {
//do some thing
}
// 获取变量obj的数据类型
function getType(obj) {
return (obj === null) ? "null" : typeof (obj);
}
var obj = new Object();
alert(getType(obj)); //object
var func = new Function();
alert(getType(func)); //function
var str = new String("jeff wong");
alert(getType(str)); //object
var num = new Number(10);
alert(getType(num)); //object
var time = new Date();
alert(getType(time)); //object
var arr = new Array();
alert(getType(arr)); //object
var reg = new RegExp();
alert(getType(reg)); //object
var garfield = new Cat();
alert(getType(garfield)); //object

        我们看到,除了Function(请小心分寸写)再次回到了function,不管是javascript的广阔内置对象Object,String恐怕Date等等,依然自定义function,通过typeof重回的无一例外,通通都以object。可是对于自定义function,大家更愿意得到它的“五指山精神”(示例中即Cat,而非object),而确定,typeof不持有这种转移处理技术。

我们看看,除了Function(请留心分寸写)再次来到了function,不管是javascript的广大内置对象Object,String或然Date等等,依然自定义function,通过typeof再次来到的无一例外,通通都以object。可是对于自定义function,我们更乐于获得它的“五指山精神”(示例中即Cat,而非object),而鲜明,typeof不富有这种转移管理技术。
2、constructor,想大声说爱你
既是万能的typeof也会有无解的时候,那么大家怎么推断叁个变量是不是是自定义的function实例呢?大家精晓,javascript的装有指标都有二个constructor属性,那一个天性可以帮大家看清object数据类型,非常是对自定义function一样适用:

constructor,想大声说爱你

       既然万能的typeof也许有无解的时候,那么大家怎么剖断三个变量是不是是自定义的function实例呢?大家精通,javascript的装有指标都有叁个constructor属性,那性子情能够帮我们推断object数据类型,尤其是对自定义function相同适用:

var obj = "jeff wong";

alert(obj.constructor == String); //true

obj = new Cat();

alert(obj.constructor == Cat); //true

可是,上边包车型客车代码您也得以测验一下:

//alert(1.constructor); //数字常量 出错 数字常量无constructor

var num = 1;

alert(num.constructor == Number); //true

alert("jeff wong".constructor == String); //true

var str = "jeff wong";

alert(str.constructor == String); //true

var obj= null;

alert(obj.constructor); //null没有constructor属性

none = undefined;

alert(obj.constructor); //undefined没有constructor属性

尝试验证,数字型常量,null和undefined都不曾constructor属性。

下边包车型地铁代码或者仍是能够有一些启示和钻井作用:

function Animal() {

}

function Cat() {

}

Cat.prototype = new Animal();

Cat.prototype.CatchMouse = function () {

//do some thing

}

var obj = new Cat();

alert(obj.constructor == Cat); //false  ??

alert(obj.constructor == Animal); //true 理解

      原本对于原型链承继的地方,constuctor也不那么好使了。那咋做?

复制代码 代码如下:

直观的instanceof

      嘿嘿,有请instanceof隆重进场。看它的命名,好疑似获得某三个目的的实例,也不知那样领悟对不对?不管如何,大家依旧入手立异地点的代码测量试验一下先:

function Animal() {

}

function Cat() {

}

Cat.prototype = new Animal();

Cat.prototype.CatchMouse = function () {

//do some thing

}

var garfield = new Cat();

alert(gar田野同志 instanceof Cat); //true 没有什么可争辨的

alert(gar田野 instanceof Animal); //true 可以清楚

原来的文章转发:http://www.nowamagic.net/librarys/veda/detail/531

本文由68399皇家赌场发布于最新解决方案,转载请注明出处:浅谈javascript的数据类型检测,JavaScript数据类型判

关键词: 68399皇家赌场 日记本

上一篇:解析JSON对象与字符串之间的相互转换

下一篇:没有了

最火资讯