js中的??使用

1、?? 表示:只有左侧的值为null或undefined的时候才使用右侧的值
2、??和三元表达式的区别: ?? 会取 0 或 false 为有效值, 但是三元表达式不会

例子:

let a=0 
let num=a?a:1 //1
let num2=a??2 //0

ps:
?. 表示:可选链操作符( ?. )允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每 个引用是否有效。操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空(null 或者 undefined) 的情况下不会引起错误,该表达式短路返回值

const obj = {
      name: 'ceshi',
      detail: {
        cat: 'huahua'
      }
    }
    const name = obj.dog ?. name;
    console.log(name) // undefined

版权声明:本文为Web_Notes原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。