2017-12-26

js中判断数据类型的几种方法(二)

在上一篇介绍了可以用typeof和toString方法判断一个给定的变量的数据类型的基础上,今天我们来看看如何用另外两种方法constructor、instanceof来进行类型的判断。

一.constructor

1.constructor属性

js中处处皆对象,每个对象身上都会有这个属性,默认指向该对象对应的构造函数,这个属性并不是放在对象身上,而是放在其对应的原型(_proto_)对象身上。

2017-12-26_第1张图片
图1.1.1
2017-12-26_第2张图片
图1.1.2

2.constructor的应用

格式:obj.constructor == Classes;

返回值:false,true

2.1 判断数据类型

2017-12-26_第3张图片
图1.2.1.1
2017-12-26_第4张图片
图1.2.1.2
2017-12-26_第5张图片
图1.2.1.3
2017-12-26_第6张图片
图1.2.1.4
2017-12-26_第7张图片
图1.2.1.5
2017-12-26_第8张图片
图1.2.1.6

2.2 构造函数

2017-12-26_第9张图片
图1.2.2.1
2017-12-26_第10张图片
图1.2.2.2

3.constructor判断时存在的问题

construction的值可以设置改变,所以在使用constructor属性做判断的过程中要尤其注意constructor值的变化。

3.1 constructor值变化情景一

2017-12-26_第11张图片
图1.3.1.1
图1.3.1.2

3.2 constructor变化情景二

2017-12-26_第12张图片
图1.3.2.1
2017-12-26_第13张图片
图1.3.2.2

弥补措施:

2017-12-26_第14张图片
图1.3.2.3
2017-12-26_第15张图片
图1.3.2.4

3.2 constructor变化情景三

2017-12-26_第16张图片
图1.3.3.1
图1.3.3.2

弥补措施;

2017-12-26_第17张图片
图1.3.3.3
图1.3.3.4

二.instanceof运算符

instanceof 是二元运算符,用来查找对象与其构造函数在原型链上有没有关系。

格式:对象   instanceof  构造函数;

返回值:true、false

1.判断数据类型

2017-12-26_第18张图片
图2.1.1
2017-12-26_第19张图片
图2.1.2

2.构造函数

2017-12-26_第20张图片
图2.2.1
2017-12-26_第21张图片
图2.2.2

3.总结

A instance B,用代码表示,其判断过程如下:

2017-12-26_第22张图片
图3.1

你可能感兴趣的:(2017-12-26)