javascript 忽略 报错_你见过这两个JavaScript操作符吗?绝对好用

点击右上方红色按钮关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!

大家好!我是/小郑搞码事/的小郑

今天和大家分享两个你不一定用过,但是用了你一定会说好的JavaScript操作符。

知道三元运算符吗?对,就是那个用到吐的问号加冒号。

? :

相信无人不知道它,但如果你只知道这一个带问题的操作符那就得往下看了。

今天小郑给大伙再说两个。

第一个:?.

这个操作符有啥用呢?

举个例子:看下面这个对象

331de0094d2a5d6617cd0e2378121dfc.png

我现在要去取它里面三层属性内的值。这样

obj2.prop.intro.age

那实际上obj2的属性prop下并没有属性intro。所以之前我们通常都要先判断属性是否有,再来取值。简单的写法,可能是这样的。

obj2.prop.intro && obj2.prop.intro.age

这个时候,没有时,返回就是undefined,而不会报错。

有没有觉得这样写总差点意思。这会有更好的写法来了。

obj2.prop.intro?.age

当然,使用的同学,记得用babel转一下。

第二个:??

这个操作符又有啥用呢?

没实际用处,甚至我没用过的语法,我基本不说的。

平常我们给默认值,用得最多的方式是使用or,就这个符号

||

比如,null || 'yes'

这个得到的就是yes字符串。

现在你可以这样写了

null ?? 'yes'

输出同样是yes字符串

那问题来了,两者有什么不同?

看下面这张图中代码运行的结果:

08b88cf08e10b6bb534158a7a9ebaac2.png

简单的只需要找不同。

结论是:??运算符也能给我们分配默认值,不过它会忽略0和空字符串等错误值。

比如:0 ?? 'yes'

就是0

0也可以算是一个数字嘛。

前端能力越来越强,技术变化日新月异,唯有基础扎实才能完美应对,这个圈子坚持每日为您提供前端最需要掌握的基础知识点。前端知识天天学。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值