如何处理未定义属性的未定义属性 javascript 类型错误

How one can handle the undefined property of undefined property javascript type error?

本文关键字:未定义 属性 类型 错误 javascript 何处理 处理      更新时间:2023-09-26

考虑一个假设的例子:

var r = function (o) { 
    try { o.a.b } 
    catch (e){} 
};
var o={};
r(o.a.b);
console.log('aaaa');
//TypeError: o.a is undefined

有没有办法处理这种错误并显示"aaaa"?或者这就是所谓的"未捕获的类型错误",似乎总是导致失败?

Ty的链接,但这与上面提到的问题实际上不是同一个问题。我有自己的方法来测试嵌套对象,我的问题更多的是关于如何在 javascript 中处理执行过程之外的类型错误,而不会干扰这个,即返回 false,仅此而已。正如 Pointy ''o/所指出的那样,这真的是不可能的,这就是我猜的答案。

您可以使用:

if(o.a) {
    r(o.a.b);
} else {
    //handle error
}
console.log('aaaa');

以检查属性是否存在。如果您需要检查o.a.b是否存在,只需扩展 if:

if(o.a && o.a.b) {
    r(o.a.b);
} else {
    //handle error
}
console.log('aaaa');

这些if正在检查是否存在,但也会标记错误值 - 因此,如果o.ao.a.b为假,则检查将失败