You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

访问JSON数据时出现Uncaught TypeError错误的技术求助

解决 "Cannot read properties of undefined (reading 'first')" 报错

嘿,这个错误我之前也踩过坑!本质就是你在访问嵌套属性的时候,中间某一层变成undefined了——要么是randomData[0]不存在(数组是空的),要么是randomData[0]里根本没有name这个属性,导致你接着读.first直接触发报错。

给你几个实用的解决思路:

1. 用可选链操作符(最推荐,ES2020及以上支持)

这个语法能帮你安全访问嵌套属性,只要中间某一层是undefined或者null,就会直接返回undefined,不会抛出错误:

const name = randomData[0]?.name?.first;

现在现代浏览器、Node.js 14+都支持这个语法,写起来特别简洁。

2. 手动做逐层校验(兼容旧环境)

如果你的运行环境不支持可选链,可以手动加条件判断,确保每一层都存在再访问:

let name = '默认名称'; // 先设置一个默认值
// 先检查数组有元素,再确认name属性存在
if (randomData.length > 0 && randomData[0].name) {
  name = randomData[0].name.first;
}

3. 先确认你的数据源是否正确

另外你得留意一下randomData的实际内容——虽然你给出的示例里数组有一个元素,但实际场景中(比如从接口拿数据)很可能数组是空的,或者返回的对象结构和你预期的不一样。可以先打印出来看看:

console.log(randomData); // 看看数组里到底有没有元素
console.log(randomData[0]?.name); // 检查name属性是否存在

这样就能彻底解决这个报错啦!

内容的提问来源于stack exchange,提问作者James

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 22:22:53