1.typeof[val]:用来检测数据类型的运算符

  1. 基于typeof检测出来的结果
  2. 1,首先是一个字符串
  3. 2,字符串中包含对应的类型
  4. 局限性
  5. 1. typeof null => "object" 但是null并不是对象
  6. 2,基于typeof无法细分出当前值是普通对象还是数组对象等,
  7. 因为只要是对象数据类型,返回的结果都是"object"
  8. console.log(typeof 1);
  9. let a = NaN;
  10. console.log(typeof a); //=>'number' */
  11. console.log(typeof typeof typeof [J);
  12. //=> typeof [] => "object"
  13. //=> typeof "object" => "string"
  14. //因为typeof检测的结果都是字符串,所以只要两个及
  15. //以上同时检测,最后结果必然是"string"

2.instanceof :用来检测当前实例是否属于某个类

3.constructor:基于构造函数检测数据类型(也是基于类的方式)

4.Object.prototype.toString.call():检测数据类型最好的办法