处理JavaScript对象中缺少的属性的最佳实践?

Dae*_*ung 1 javascript json

我有一个进行其余Web服务调用的客户端,从该服务调用返回的数据是JSON对象。它具有以下字段名称,例如名称和年龄。我遇到一种情况,其中返回的数据中的字段为空。收到此{}而不是{"name":"john doe","age":"23"}。在JavaScript中处理异常的最佳方法是什么?

Max*_*Art 5

这取决于您期望的数据。

经典的方式是

if (typeof object.property === "undefined") {
    ...
}
Run Code Online (Sandbox Code Playgroud)

这也意味着这undefined不是一个可接受的值(也不应该)。但是,如果这对您不利,那么总会有

if (!object.hasOwnProperty("property")) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

如果期望使用非空字符串(或非零数字),则可以快捷方式执行以下操作:

if (!object.property) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您需要接受空字符串或零,这也很常见:

if (object.property == null) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

这样会拒绝类似undefined(应该是您的情况) null(可能是另一个不可接受的值)之类的值。

但是,最后,我建议返回一个空对象而不是一个空对象null,如下所示:

if (object != null) {
    // do your stuff with name and age
    ...
}
Run Code Online (Sandbox Code Playgroud)