js经典面试题(var a = 0, b = 1, c = b.value?.v;)

这篇博客通过一道JavaScript面试题来探讨点操作符(.)与可选链操作符(?.)的用法。解释了`b.value?.v`在`b`未定义或`value`属性不存在时如何避免报错并返回`undefined`。接着解析了类似表达式如`a || 2`和`c && 3`的逻辑运算规则,并得出最终结果为4。
摘要由CSDN通过智能技术生成

先上题

    <script>
        //以下代码的输出结果是多少?
        var a = 0, b = 1, c = b.value?.v;
        a || 1;
        b && 2;
        c ??= 3;
        console.log(a + b + c);
    </script>

各位得出自己心目中的答案了吗?

先不说结果,给各位一一解析一下;(想验证答案,可以直接划至最后

首先是第一条

 var a = 0, b = 1, c = b.value?.v;

其意思等同于下面这段,只不过用 ,分隔,这样可以减少var的书写。

var a = 0;
var b = 1;
var c = b.value?.v;

0和1大家都能理解,那么这个c = b.value?.v;是什么意思呢?

首先碰见这种繁琐的语句,先一一拆解。

b.value:b=1; b.value有值吗?b没值所以b.value是undefined。

b.value?.v: 输入b.value.v可以发现是报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值