??合并空值运算符

??左边的如果是null或者undefined,就会返回右边,否则返回左边,与||不同的是,||是以falsy值进行判断的
??和| |和&&一样都是短路运算

  1. console.log(null ?? undefined ?? 1);//1
  2. console.log(0 || 11 || 1);//11

经过测试不可以和其他的&&、| |连用,但是加上括号可以连用

?.可选链语法

可选链会验证调用的是不是null或者undefined,如果是就会返回undefined

  1. obj?.prop
  2. obj?.[expr]
  3. arr?.[index]
  4. func?.(args)