新的语法。
类似 ||
不同的是,可以区分出 0 false
比如:

  1. 0 || 1 // 1
  2. 0 ?? 1 // 0

只要左侧不是 null undefined 就可以使用填充的默认值。

优先级

较低,略高于 =

  1. let a = null
  2. let b = null
  3. let c = a ?? 1 * 0 ?? b // a ?? 0 ?? b => 0
  4. let c = (a ?? 1) * (0 ?? b) // 1 * 0 => 0

注意和||, &&一起用

需要加 () 指定优先级。不然会报语法错误。