typeof与instanceof区别

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
由此可见,typeof是无法区分array,null,object,new+函数,才有instanceof。instanceof判断该对象是谁的实例
1.typeof判断所有变量的类型,返回值有number,boolean,string,function,object,undefined。
2.typeof对于丰富的对象实例,只能返回"Object"字符串。
3.instanceof用来判断对象,代码形式为obj1 instanceof obj2(obj1是否是obj2的实例),obj2必须为对象,否则会报错!其返回值为布尔值。
4.instanceof可以对不同的对象实例进行判断,判断方法是根据对象的原型链依次向下查询,如果obj2的原型属性存在obj1的原型链上,(obj1 instanceof obj2)值为true。

instanceof 能判断基本数据类型吗?
能,可以通过Symbol.hasInstance判断某对象是否为某构造器的实例

 class array2{
 	static [Symbol.hasInstance](instance) {
    return Array.isArray(instance);
  }
 }
 console.log([] instanceof array2) //true
 
  class number1{
 	static [Symbol.hasInstance](x) {
    return return typeof x === 'number'
  }
 }
 console.log(11 instanceof number1) //true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值