用JS判断数据类型(常见四种)
常用的js判断数据类型(number、boolean、symbol、string、object、undefined、function)方法有三种:
typeof判断
typeof判断基本类型可以(null除外,null也返回object),但是指引类型均返回object,如图:
toString判断
toString()是Object的原型方法,调用该方法,默认返回当前对象的[[Class]]。这是一个内部属性,其格式为[object Xxx],其中Xxx就是对象的类型。 对于Object对象,直接调用toString()就能返回[object Object],而对于其他对象,则需要通过call、apply来调用才能返回正确的类型信息。
如图:
constructor
onstructor是原型prototype的一个属性,当函数被定义时候,js引擎会为函数添加原型prototype,并且这个prototype中constructor属性指向函数引用, 因此重写prototype会丢失原来的constructor。(null 和 undefined 无constructor)如图:
instanceof
instanceof用来判断A是否为B的实例,表达式为:A instanceof B,如果A是B的实例,则返回true,否则返回false。instanceof检测的是原型,内部机制是通过判断对象的原型链中是否有类型的原型。(不推荐)