JavaScript中判断数据类型的方法
在JavaScript中,有6数据类型:String, Number, Boolean, Null, undefined, Object,在ES6中新增了一种Symbol类型。
js中判断数据类型的方法一共有四种: typeof,instanceof,constructor,Object.prototype.toString.call()
typeof
注意:
1、typeof 数组的时候会返回一个object,可以通过Array.isArray()的方法判断是不是数组类型,如果是数组类型则返回true
2、typeof null、new Date()、RegExp()、Error()都会返回object。
3、typeof NaN会返回number,NaN也是Number的一种。
instanceof
利用instanceof来判断A是否为B的实例,表达为A instanceof B,返回一个布尔值。instanceof的原理是通过检测对象的原型链上是否含有类型的原型。
constructor
JS规定,每个构造函数都会有一个prototype属性,即为构造函数的原型对象,而原型对象中会有一个constructor属性指回到构造函数。当利用构造函数创建新对象时,原型上的constructor属性也会被遗传到新创建的对象上,从原型链的角度讲,构造函数也代表了对象的类型。
Object.prototype.toString.call()
toString()方法是Object原型上的方法,调用此方法,返回格式为[object,xxx],xxx即为判断的结果。对于Object对象可以直接调用Object.prototype.toString(),对于其他数据类型,需要通过.call()来调用。
参考学习链接,侵权可删:
https://segmentfault.com/a/1190000037747875