带有多个if的javascript if条件

标签 javascript

我在每个页面上运行一个 UI 组件,并且在其中一个页面上,有一个附加功能链接到它。 UI 组件有一个名为 MyValue 的 bool 值,额外功能有一个名为 ExtraObject 的对象,其属性之一是名为 ExtraBool 的 bool 值。

我想测试 MyValue 是否为 true 以及 ExtraObject.ExtraBool 是否为 false,但前提是 ExtraObject 存在。这样,如果我所在的页面没有 ExtraObject,就不会出现错误。

我尝试过这个:

if (MyValue === true && 
    (typeof ExtraObject === undefined || ExtraObject.ExtraBool === false)) {...}

我应该如何重写这个?

目前,我不断收到“ExtraObject 未定义错误”。

谢谢。

最佳答案

应该是:

typeof ExtraObject === "undefined"

typeof字符串形式返回表达式的类型,因此您需要将名称“undefined”与结果进行比较。

在我看来,你的条件有点太明确了。我会选择更短的东西:

if (MyValue && !(ExtraObject && ExtraObject.ExtraBool)) {...}

如果您使用自己的 GUI 代码进行通信,则可以假设类型符合预期。 JavaScript 中的类型检查相当麻烦,因此如果您知道自己正在处理什么,就可以不那么明确。 (但这不适用于用户输入。永远不要相信用户输入。)

关于带有多个if的javascript if条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11004730/

相关文章:

javascript - 取消提示时刷新页面

javascript - jQuery 插件 - 这些设置如何工作?

javascript - 无限循环与 redux-saga

javascript - 如何在javascript中返回document.onmousedown的值

javascript - Json - 创建一个自动递增的 ID 列

javascript - 当 View 被注入(inject)到 Controller 中时,如何从我的 View 类中获取事件监听器以引用 Controller 类中的方法?

javascript - 无法渲染 Leaflettilelayer

php - 如何获取 javascript Ajax 调用的帖子 ID?

javascript - 逐渐打开html表单

javascript - 动态添加文本框并通过函数为其分配值