?? 与 || 在 JavaScript 中的微妙差别

起初,你可能会认为你可以随意替换任何你喜欢的人,对吗?

4658b52414c7ccee87d479ab02c64175.png

错误。他们并非你所想的那样。

我们必须一劳永逸地学习这个区别,以避免日后出现痛苦的错误。

这个差别是什么?

这是他们对待真值和假值的令人难以置信的对比。这些是什么?

假值:在 Boolean()if 中变为 false

e799c6ed494c75df81a3cfe82df1d6b4.png

  • 0

  • undefined

  • null

  • NaN

  • false

  • '' (空字符串)

Truthy:所有其他的事情:

fecffefd7c908b876c000df52de1384a.png

现在看看创建一个这样的 || 链时会发生什么:

d11a583f15a331f114a9912b99611d84.png

它会一直进行下去,直到遇到第一个真值!但是关于 ?? 链呢?👇

e4bee6291ce4ab1e5220e11811b99714.png

看到明显的区别了吗?

一个寻找 truthy ,另一个寻找任何非空或未定义的东西。

何时使用 ?? 与 ||

在视频游戏中初始化额外生命,其中 0 代表某种含义?

?? 👇

b2a4d146804b1bbc264a89318edc0c0a.png

对响应进行分页,其中 0 limit 没有意义?

|| 👇

972ea8b115d369580ff4d4877869d701.png

用户必须有一个名称,所以不能有空格,绝对不能有空字符串?

|| 👇aef997c524e7274751c1916f8f4e1e9b.png

用户输入的数字无效,还是他们根本就没有输入数字?

?? 找出来👇

492a0174292bb5f3494807b717a6f34c.png

#### ???. 是朋友

27ab7ab953fdddf9945c81ce7c02cd59.png

总结

?? 是一个轻信的孩子,他会相信任何事情。|| 是一名寻找真实无非真实的侦探。

最后:

React Hook 深入浅出

CSS技巧与案例详解

vue2与vue3技巧合集

VueUse源码解读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值