首页 > 解决方案 > Javascript - 在检查对象是否具有属性时如何避免多个 if 条件检查?

问题描述

如果条件,我怎样才能避免这么长的时间?

if (typeof window.checkoutConfig.shipping !== "undefined") {
    if (typeof window.checkoutConfig.shipping.rules !== "undefined") {
        if (typeof window.checkoutConfig.shipping.rules.express !== "undefined") {
            if (typeof window.checkoutConfig.shipping.rules.express.express_note !== "undefined") {
                this.expressNote(window.checkoutConfig.shipping.rules.express.express_note || "");
            }
        }
    }
}

有没有我可以使用的方法,例如(伪代码)isset(window.checkoutConfig.shipping.rules.express.express_note):.

标签: javascriptobject

解决方案


看看可选的链式操作符

它将允许您编写:

window.checkoutConfig.shipping?.rules?.express?.express_note

正如评论中提到的,您可能希望使用babel使其与旧浏览器兼容。

var a = {};
a?.b?.c

将编译为:

var _a$b;
var a = {};
a == null ? void 0 : (_a$b = a.b) == null ? void 0 : _a$b.c;

推荐阅读