Cannot read properties of undefined (reading '0')
错误信息
Cannot read properties of undefined (reading '0')
AI 解决方案
AI 思考过程
▼
用户提供了一个JavaScript报错信息:"Cannot read properties of undefined (reading '0')",让我来分析这个问题。
🔍 错误分析
1. 🌐 错误翻译
原文:Cannot read properties of undefined (reading '0')
译文:无法读取未定义(undefined)的属性 '0'
2. 🎯 原因分析
根本原因: 代码试图访问一个值为 undefined 的变量的索引 0(通常是数组的第一个元素或字符串的第一个字符)。
常见场景:
| 场景 | 示例 |
|---|---|
| 数组未初始化 | let arr; arr[0] |
| 函数返回值为undefined | getArray()[0] |
| 解构赋值目标为空 | const [first] = undefined |
| 对象属性不存在 | obj.data[0](data为undefined) |
3. 💡 解决方案
方案一:可选链操作符(推荐)
// 安全访问嵌套属性
const value = myArray?.[0];
const value = obj?.data?.[0];
方案二:空值合并 + 默认值
const value = (myArray || [])[0] ?? '默认值';
方案三:提前校验
if (Array.isArray(myArray) && myArray.length > 0) {
const value = myArray[0];
}
方案四:使用解构 + 默认值
const [first = '默认值'] = myArray || [];
4. 🛡️ 预防措施
- ✅ 使用 TypeScript:类型检查可在编译阶段发现此类问题
- ✅ ESLint 规则:启用
@typescript-eslint/no-unnecessary-condition检测潜在的 undefined 访问