typeof 与 instanceof的区别

本文探讨了JavaScript中typeof和instanceof的区别。typeof在判断数据类型时,对于null会返回'object',而对于复杂引用类型无法判断。instanceof则通过检查对象的原型链来确定对象是否由特定构造函数创建。两者在使用中各有侧重,typeof适合基础类型判断,instanceof适合复杂类型判断。文章还提供了结合两者使用的方法和示例。
摘要由CSDN通过智能技术生成

在这里插入图片描述
如上是我最近刷题遇到的一个小坑,可以看到用typeof判断null的类型时,返回的是一个’object’,而用instanceof判断时返回的是false,但不知道具体原因。于是重新再学习该部分内容并归纳总结。

typeof

typeof 的数据类型

typeof 运算符不是变量。它属于运算符。运算符(比如 + - * /)没有数据类型。
但是,typeof 始终会返回字符串(包含运算数的类型)。
typeof 操作符返回一个字符串,表示未经计算的操作数的类型。

我们可以利用 typeof 来判断number, string, object, boolean, function, undefined, symbol 这七种类型,这种判断能帮助我们搞定一些问题,比如在判断不是 object 类型的数据的时候,typeof能比较清楚的告诉我们具体是哪一类的类型。但是,很遗憾的一点是,typeof 在判断一个 object的数据的时候只能告诉我们这个数据是 object, 而不能细致的具体到是哪一种 object
例如:

let a = new String('abc');
typeof a === 'object'// true
a instanceof String // true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值