网上的解释有点太复杂了,这里用简单的例子描述一下
??
const nowTime = newTime ? newTime : oldTime
const nowTime = newTime ?? oldTime
这两句是一个意思,其实就是?两边的变量一样时使用的简写
?.
const time = item ? item.time : undefined
const time = item?.time
这两句也是一个意思,就是?.左边的值为空时不会报错
熟悉JavaScript的都知道,当一个值为null或undefined时再访问它的属性会报错,所以我们执行下面这种操作时一般会用三元或者if判断一下再赋值
const time = item.time
但当我们使用?.时,如果item等于null或undefined,那么time的值就为undefined,不会报错