空值问题
快速摘要
变量值是 `null`(故意设为空),但你又试图访问它的属性或方法,于是程序报错。
为什么发生
从 API 或数据库拿到的数据字段是
null,没有判空就直接使用函数在某种条件下返回
null,调用方没有处理这种情况对象属性被显式设为
null,后续代码却假设它一定有值
最小示例
✗ 错误代码
const user = null;
console.log(user.name);✓ 修复代码
const user = null;
console.log(user?.name);user 是 null,直接访问 user.name 会抛错。用可选链 user?.name 在 user 为空时返回 undefined,不再报错。
如何诊断
在出错前打印变量,确认是否为
null查看数据来源(API 文档、数据库 schema),确认哪些字段可能为空
检查函数的所有返回路径,是否在某些分支返回
null
如何修复
使用前判空:
if (value !== null) { ... }用可选链
value?.property安全访问属性提供默认值:
const v = value ?? defaultValue
如何预防
对可能为空的字段统一使用空值合并或可选链
在函数文档中明确标注哪些参数或返回值可能为
null