JavaScript类型的检测,你知道几种?
有4种,typeof操作符,instanceof操作符,constructor属性,Object.prototype.toString方法
第一种:typeof 操作符
用typeof操作符可以检测一个变量的数据类型。它返回一个字符串,表示变量的数据类型。
检查原始数据类型,如下图所示
Typeof null 会返回object的原因,在JavaScript的数据类型(一)解释过,是历史遗留问题。
检查引用数据类型,如下图所示:
在JavaScript里,函数被视为一种特殊的对象类型。
第二种:使用instanceof 操作符
instanceof用于检查一个对象是否是某个特定类的实例。结果返回布尔值,如果对象是指定类的实例,就返回true。instanceof只能用于判断对象的类型,不能用于判断基本数据类型的类型。
判断原始数据类型,如下图
instanceof操作符不能用于判断基本数据类型的类型。
判断引用数据类型,如下图
3. 对象的constructor 属性
每个对象都有一个constructor属性,它指向创建该对象的构造函数。
判断各种对象,如下图:
第4 种:Object.prototype.toString 方法
调用对象的原型方法****toString并传入要检测的对象作为参数,可以获取对象的内部属性[[Class]]的值,从而确定对象的数据类型。
判断各种对象,如下图:
总结:
有4种方式可以判断数据类型,typeof用于判断原始数据类型,后面3种都是用来判断对象类型的。