typeof instancenof Array.isArray()区别

typeof()                             检测    简单数据类型   如果检测 复杂数据类型  都返回 Object  且 检测null  为object       判断null 可以使用=== 来判断

instanceof()                      检测具体的对象类型      (用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。)

举个栗子   :       a instanceof()   B           判断的是   a是否为B的实例   即 a的原型链上存在B的构造函数   如果a实例 是由构造函数B new 出来的  

根据原型链的查找原则  a.__proto__.__proto__=== Object.prototype   返回 true     说明a 是由 B构造函数创建出来的    间接判断a是什么对象类型  

  

Array.isArray()                   用于检测传递的值是否是一个 Array

Object.prototype.toString.call()                方法 来进行类型判断     会返回一个形如 "[object XXX]" 的字符串

 

posted @ 2021-05-19 23:49  一个动态类型的幽灵  阅读(90)  评论(0编辑  收藏  举报