javascript - 如何检查对象中的对象是否存在

标签 javascript object member literals

似乎以下用于检查对象成员是否存在的技术会产生错误,因为在检查之前尚未声明“bar”父对象,这意味着我要么必须在检查之前声明它,要么使用两个'typeof' 表达式,其中任何一个都是多余的代码:

var foo = {},
    newVal = (typeof foo.bar.myVal !== 'undefined' ? foo.bar.myVal : null );

Error: foo.bar is undefined

那么,如何在不产生错误的情况下检查未声明对象中的成员是否存在?

我喜欢 javascript,但有时...

最佳答案

只需使用以下代码即可完成:

var newVal = (foo && foo.bar && typeof foo.bar.myVal !== 'undefined') ? foo.bar.myVal : foo.bar.myVal

属性为 null 或未定义,它将被评估为 false,因此上面的代码将只处理第一个“false”语句。

关于javascript - 如何检查对象中的对象是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6548256/

相关文章:

c++ - C++ 构造函数中的 'new auto'

javascript - 使用 moment 将当前时间转换为毫秒

c++ - 使用另一个对象作为构造函数中的参数创建一个对象

javascript - 根据对象迭代动态获取数据库值

javascript - 在 JavaScript 中对自定义对象数组进行排序

c++ - 在同一行中声明成员引用变量

c - 指向结构的指针作为参数,函数内引用的成员产生奇怪的值

javascript - JavaScript 中的事件冒泡

javascript - Ruby 全局变量是否等同于类对象上的类变量?

javascript - 将数据保存到数据库后如何在按钮单击时关闭aspx页面