首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JavaScript中的部类检验

2012-10-09 
JavaScript中的类型检验JavaScript中的常见类型: ?number string boolean ?object ?null ?undefined.?判断

JavaScript中的类型检验

JavaScript中的常见类型: ?number string boolean ?object ?null ?undefined.

?

判断一个变量的类型可以使用的方法:

?

1. ?typeof方法 :?? 可以判断 ?number ?string ?boolean ? object ?function undefined 但是对于具体的Object类无法细分是Array还是Date,以及自定义的对象类型。

?

实例代码展示:

?

var str = [];typeof str == "object"; //true
???

?

2. ?instanceOf ?这个可以判断变量的具体对象类型 但是根据他的含义对于继承关系的无法区别开。

?

示例代码展示:

?

var person  = function(name){this.name =name};var author = function(name,age){thia.name=name;this.age = age};author.prototype = new person();alert(new author() instanceof person)  //TRUE
?

?

3. ?constructor属性??

?? ? ?什么事constructor属性 : 来历 ?和prototype的关系 ??

??javascript在创建一个函数F是会给函数添加一个prototype的引用执行一个原型对象,而这个对象有一个属性 ? ? ? ? ? ? ? ? ? constructor指向这个函数。这样就形成了循环引用。而利用这个函数创建出来的对象并没有constructor属性,只 ? ? ? ? ? ? 是它的prototype指向了F.prototype.

?? ? ?constructor属性存在的问题

??对于不同的iframe相同的类型也会指向不同的构造函数。

?

4. ? 鸭式辨型

思想: 如果一直动物既会鸭子的走路 又会鸭叫 就认为它是鸭子。

?

实例代码:

?

isArray : function(object){    if(typeof object == "object"&& "splice" in object&&"join" in object){         return true;    }    return false;}

?

?? ? ? ? 缺点: ?但是如果一个对象恰好有这些属性就会判断错误。

?

???示例代码:

?

var people = new People();people.prototype = {   splice : function(){},   join    : function(){}};
?

?

?

5. ?toString 这个方法是Object中的原生方法

?

例如: ?var time = ["wang","cheng"];

?? ?alert(Object.prototype.toString.call(time)); // 【object ?Array】

?

?

热点排行