JavaScript对象嵌套属性访问报错,如何正确获取嵌套值?
解决JavaScript嵌套对象属性访问的TypeError问题
错误原因
你遇到的Uncaught TypeError: Cannot read properties of null (reading 'd'),是因为event['start']['tzOffset']的值为null,而null不属于对象类型,无法读取它的d属性。同时你的访问路径也写错了——从对象结构来看,日期数据实际在start下的d属性里,而非tzOffset。
正确访问方式
按照对象的层级结构,正确获取start日期值的写法是:
// 方括号语法 event['start']['d']['d'] // 点语法(更简洁常用) event.start.d.d
安全访问嵌套属性的技巧
如果担心后续可能出现某层属性不存在或为null/undefined的情况,可以用以下两种方式避免报错:
- 可选链操作符(?.):ES2020及以上版本支持,当中间某层属性不存在或为空时,会直接返回
undefined,不会抛出错误
const startDate = event?.start?.d?.d;
- 手动逐层判断:兼容低版本JavaScript环境的写法
let startDate; if (event && event.start && event.start.d) { startDate = event.start.d.d; }
内容的提问来源于stack exchange,提问作者user3058870
相关产品推荐
相关产品推荐

