a ?? undefined
// 等价于:
a === null || a === undefined ? undefined : a
为什么 null 不直接用?从 JS 语义上讲,null 当然也表示“空”。
但很多表单组件在受控绑定时,对:
- undefined:通常理解为“未设置/未选择”
- null:有时会有兼容差异,表现不一定稳定
- ?? 只处理 null 和 undefined,不会把 0、false、'' 当成空值 所以在 UI 表单里,常常会主动把 null 收敛成 undefined。