< p > 真实的例子:
假设,我们有一个phone变量,它在我们的表单中不是强制的,空字符串('')对我们有效,如果phone变量是null或undefined,我们想要doSomething(),现在猜猜看:
当将||用于不undefined或null的falsy值时:
const phone = ''; // assume it became empty string from some action
phone || doSomething(); // ==> damn, the doSomething is run
// but we want to run it if it's `undefined` or `null` the empty string is valid for us
但是当对上述情况使用??时:
const phone = ''; // same assumption like above
phone ?? doSomething(); // ==> yeah, that's right
// the empty string is valid for us and the doSomething is not run
let y
y = false || 'default' // y = 'default'
y = false ?? 'default' // y = false
y = 0n || 'default' // y = 'default'
y = 0n ?? 'default' // y = 0n
y = NaN || 'default' // y = 'default'
y = NaN ?? 'default' // y = NaN
y = '' || 'default' // y = 'default'
y = '' ?? 'default' // y = ''
let y
y = null || 'default' // y = 'default'
y = null ?? 'default' // y = 'default'
y = undefined || 'default' // y = 'default'
y = undefined ?? 'default' // y = 'default'