在JavaScript中函数默认参数仅对undefined生效null被视为有效值而不会触发默认值解构赋值同理且应按语义区分使用undefined表“未提供”null表“有意为空”。在 JavaScript 中undefined 和 null 虽然都表示“空值”但在函数默认参数场景下行为截然不同只有 undefined 会触发默认值赋值null 不会。默认参数只对 undefined 生效ES6 引入的默认参数机制其触发条件是形参实际接收的值为 undefined严格相等包括未传参、显式传 undefined或解构失败时的空位。未传参 → 使用默认值function fn(x default) { return x; } fn(); // default 传 undefined → 使用默认值fn(undefined); // default 传 null → 不触发默认值fn(null); // nullnull 是有效值会被原样接收null 是一个明确的原始值代表“有意为之的空对象引用”。函数将其视为合法输入不会回退到默认值。常见于 API 返回、用户输入或状态初始化如 { user: null } 若希望 null 也走默认逻辑需手动判断function fn(x default) { x x ?? default; return x; } 注意??空值合并和 || 不同它只对 null 或 undefined 生效解构赋值中的表现一致对象/数组解构的默认值规则与函数参数一致仅 undefined 触发默认值。 RedClaw 百度推出的手机端万能AI Agent助手