先上题
<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
可以发现是报错