js中判断数据类型的几种方法(二)
在上一篇介绍了可以用typeof和toString方法判断一个给定的变量的数据类型的基础上,今天我们来看看如何用另外两种方法constructor、instanceof来进行类型的判断。
一.constructor
1.constructor属性
js中处处皆对象,每个对象身上都会有这个属性,默认指向该对象对应的构造函数,这个属性并不是放在对象身上,而是放在其对应的原型(_proto_)对象身上。
图1.1.1
图1.1.2
2.constructor的应用
格式:obj.constructor == Classes;
返回值:false,true
2.1 判断数据类型
图1.2.1.1
图1.2.1.2
图1.2.1.3
图1.2.1.4
图1.2.1.5
图1.2.1.6
2.2 构造函数
图1.2.2.1
图1.2.2.2
3.constructor判断时存在的问题
construction的值可以设置改变,所以在使用constructor属性做判断的过程中要尤其注意constructor值的变化。
3.1 constructor值变化情景一
图1.3.1.1
图1.3.1.2
3.2 constructor变化情景二
图1.3.2.1
图1.3.2.2
弥补措施:
图1.3.2.3
图1.3.2.4
3.2 constructor变化情景三
图1.3.3.1
图1.3.3.2
弥补措施;
图1.3.3.3
图1.3.3.4
二.instanceof运算符
instanceof 是二元运算符,用来查找对象与其构造函数在原型链上有没有关系。
格式:对象 instanceof 构造函数;
返回值:true、false
1.判断数据类型
图2.1.1
图2.1.2
2.构造函数
图2.2.1
图2.2.2
3.总结
A instance B,用代码表示,其判断过程如下:
图3.1