Skip to content

空值问题

快速摘要

变量值是 `null`(故意设为空),但你又试图访问它的属性或方法,于是程序报错。

为什么发生

  • 从 API 或数据库拿到的数据字段是 null,没有判空就直接使用

  • 函数在某种条件下返回 null,调用方没有处理这种情况

  • 对象属性被显式设为 null,后续代码却假设它一定有值

最小示例

✗ 错误代码
const user = null;
console.log(user.name);
✓ 修复代码
const user = null;
console.log(user?.name);

usernull,直接访问 user.name 会抛错。用可选链 user?.nameuser 为空时返回 undefined,不再报错。

如何诊断

  • 在出错前打印变量,确认是否为 null

  • 查看数据来源(API 文档、数据库 schema),确认哪些字段可能为空

  • 检查函数的所有返回路径,是否在某些分支返回 null

如何修复

  • 使用前判空:if (value !== null) { ... }

  • 用可选链 value?.property 安全访问属性

  • 提供默认值:const v = value ?? defaultValue

如何预防

  • 对可能为空的字段统一使用空值合并或可选链

  • 在函数文档中明确标注哪些参数或返回值可能为 null

相关资源

相关术语

相关课程

相关练习

← 返回语言