前端之JS类型检测

你好,欢迎打开我的博客,阿雨每天与你分享许多有趣新鲜的knowledge!
阿雨博客CSS部分更新完了,接下来是有趣的JS部分,就跟随阿雨的步伐走进web世界吧!
一.使用constructor
constructor是Object类型的原始属性,它能够返回当前对象的构造器(类型函数)。利用该属性,可以检测复合型数据的类型,如对象,数组,和函数等。
前端之JS类型检测
结合typeof运算符和constructor原型属性,可以检测不同类型的数据,常用检测结果如下:
前端之JS类型检测
undefined和full没有constructor属性,不能直接读取,否则会抛出异常。因此,,一般先检测值是否为undefined和null等特殊值,然后再调用constructor属性。
前端之JS类型检测
数据直接量也不能直接读取constructor属性,应该先把他转换为对象再调用
前端之JS类型检测
二.使用toString
在对象上调用Object的原型方法toString(),就会返回统一格式的字符串表示
前端之JS类型检测
其中,object表示对象的基本类型,Class表示对象的子类型,子类型的名称与该对象的构造函数名一一对应。例如:Object对象的class为Object;Arrayt对象的class为Array;Function对象的class为Function;Date对象的class为Date;Math对象的class为Math;Error对象的class为Error。
宿主对象也有预定的Class值,如Window,Document和From等,用户自定义的对象的Class为Object。用户自定义的类型可以根据这个格式自定义类型表示。
Clss值提供的信息与constructor属性都能够检测数据类型,但是Class值是以字符串的形式提供这些信息,而使用typeof运算符进行数据类型检测,由于其检测的数据类型有限,无法精准分辨object,Function,Array等类型。
设计typeof()方法可以利用其返回的数据类型的字符串表示,可以设计一种更安全的类型检测方法
前端之JS类型检测
在type的类型基础上拓展方法,专门检测某种数据类型。前端之JS类型检测