在开发过程中,周期性地JavaScript
发生错误:无法读取未定义的属性 ***或无法读取 null 的属性 ***
例如在这段代码中:
const count = result.data.length;
无法读取未定义的属性(读取“长度”)
或者在这个:
const dataMap = response.lines.map(item => item * 2);
未捕获的类型错误:无法读取未定义的属性(读取“地图”)
如何理解错误的原因,它是什么意思,为什么会出现以及如何解决?
我们将考虑这个对象的例子
无法读取未定义或 null 的属性
如果我们尝试执行以下代码,将会发生错误:
未捕获的 TypeError:无法读取 null 的属性(读取“forEach”)
未捕获的类型错误:无法读取未定义的属性(读取“地图”)
这些错误告诉我们,我们正试图在没有任何东西(null或undefined)的情况下调用方法。
data.errors
它是空的。null 没有方法。根本不data.values
存在。你不能对不存在的东西调用方法。无法读取属性
如何避免?
检查对象中来了什么,对象中是否存在我们需要的值。验证选项之一,使用
console.log()
.您可以从最后一个密钥开始,但最好打印整个密钥以了解我们正在使用的结构:
您还可以使用可选的链接运算符 ' ?。'
可选的链运算符将检查左侧的值。如果值为
null
orundefined
,则链终止并返回undefined。