typeof 和 instanceof 都能判断数据类型,可是它们之间有什么区别呢,浅谈以下函数
1.stringspa
2.booleanprototype
3.number对象
4.function继承
5..object (注意:typeof 在判断 null、array、object以及函数实例(new + 函数)时,都是返回 object)原型链
6.undefined原型
官方解释:用于检测构造函数的 prototype 属性是否出如今某个实例对象的原型链上。string
通俗地讲:用来检测某个对象是谁的实例io
因此咱们就知道instanceof 是对象运算符。这里的实例就牵扯到了对象的继承,它的判断就是根据原型链进行搜寻,若是对象 obj1 的原型链上存在另外一个对象obj2的原型属性,function
那么,表达式(obj1 instanceof obj2)返回值为 true,不然返回 false。
因此 instanceof 的返回值 为 true 或者 false
1. typeof 能判断的类型有: number,boolean,string,undefined,object,function。
可是不能判断 null,array,object和函数实例(new + 函数),都是返回object
2.instanceof 可以对不一样的对象实例进行判断,如null,array等,返回值为布尔值,
因此 instanceof 对对象(null、array、object)判断更加细致清晰!!!