- typeof
- instanceof
- constructor
- Objecat.prototype.toString.call()
typeof
- typeof在计算机的底层是检测(二进制)进行的检测
- typeof null "object" 在对象的计算机二进制存储 null 也是,所有检测出来是对象
- typeof 普通对象 数组对象 正则对象 日期对象 => ‘object’
instanceof 检测当前的实例是否属于这个类
- 底层机制:只要当前的实例出现在实例的原型链上,就是true 基于 prototype
- 由于我们可以事已修改原型链指向,所以检测出来的结果是不准确的
- 不能检测基本数据类型
- 自己写一个instanceof
constructor
- 比instanceof 好一些 可以检测基本数据类型
- constructor 可以随便改,所以也不准
Objecat.prototype.toString.call()
- 标注检测数据类型方法,Objecat.prototype.toString 返回当前实例的所属类信息
- 标准检测方法 返回结果统一字符串 【object Number/Null/Undefined/Boolean/String/Function/Array/Rexg/Date/Object】
- 封装一个万能的数据检测 totype