第一种:typeof检测
返回值:对应数据类型的小写字符串 例:Number 数字类型 返回就是 小写的number
第二种:instanceof检测
返回值:返回值是布尔值(true/false),判断前者是否在后者的原型对象上
第三种:constructor检测
返回值:是构造函数。注意:它的原型可以被修改
第四种:Object.getPrototypeOf() 检测
返回值:返回值是原型,获取原型和想要的原型对象作对
第五种: Object.prototype.toString.call() 检测
返回值:返回的是一个[]中括号包裹的类型。优点:这个方法查的特别的准,可以检查任意类型
总结: 1、typeof检测,返回的是对应类型的字符串,这个方法常用于检测基本数据类型,检测null和引用数据类型不准确;
2、instanceof检测,返回的是布尔值,只要是基本数据类型就是false,只要是引用数据类型,并且右边是Object就是true,可以很好区分是哪一大类型
3、constructor 返回的是构造函数,可以检测基本数据类型和引用数据类型, 但是有一定缺陷,就是原型可以被修改
4、Object.getPrototypeof() 返回的是原型
5、 Object.prototype.toString.call() 检测 任何数据类型都可以检测