JavaScript数据类型检测

84 阅读1分钟
  1. typeof
  2. instanceof
  3. constructor
  4. Objecat.prototype.toString.call()

typeof

  • typeof在计算机的底层是检测(二进制)进行的检测
  • typeof null "object" 在对象的计算机二进制存储 null 也是,所有检测出来是对象
  • typeof 普通对象 数组对象 正则对象 日期对象 => ‘object’

instanceof 检测当前的实例是否属于这个类

  • 底层机制:只要当前的实例出现在实例的原型链上,就是true 基于 prototype
  1. 由于我们可以事已修改原型链指向,所以检测出来的结果是不准确的
  2. 不能检测基本数据类型
  3. 自己写一个instanceof

constructor

  1. 比instanceof 好一些 可以检测基本数据类型
  2. constructor 可以随便改,所以也不准

Objecat.prototype.toString.call()

  1. 标注检测数据类型方法,Objecat.prototype.toString 返回当前实例的所属类信息
  2. 标准检测方法 返回结果统一字符串 【object Number/Null/Undefined/Boolean/String/Function/Array/Rexg/Date/Object】
  3. 封装一个万能的数据检测 totype