逻辑或操作符(||)会在左侧为假值时返回右侧的操作符,例如我们传入一个属性为 enabled:0 我们期望输出左侧的值,则是不行的。

1
2
3
4
function Component(props) {
const enable = props.enabled || true; // true
}
Component({ enabled: 0 })

现在我们可以使用 空值合并操作符(??)来实现,仅当左侧为 undefined 或 null 时才返回右侧的值。

1
2
3
4
5
function Component(props) {
const enable = props.enabled ?? true; // 0
}

Component({ enabled: 0 })

参考:https://v8.dev/features/nullish-coalescing