【问题标题】:How to check if obj1.obj2 exists before accessing a property on obj2如何在访问 obj2 上的属性之前检查 obj1.obj2 是否存在
【发布时间】:2016-03-26 04:19:52
【问题描述】:

给定变量obj1.obj2.obj3,编写一个JavaScript sn-p来获取这个变量的值,如果obj1或obj2未定义,不会出错。

【问题讨论】:

  • x= typeof obj1 !=='undefined' && obj1.obj2 && obj1.obj2.obj3;

标签: javascript


【解决方案1】:

大多数人都这样做obj1 && obj1.obj2 && obj1.obj2.obj3

还有很多其他方法可以做到这一点,例如

var x
try { x = obj1.obj2.obj3 } catch (e) {}

这将使 x 未定义

【讨论】:

  • 如果 obj1 没有被声明,第一个 clode 块将被抛出。
【解决方案2】:
if (typeof obj1 !='undefined'){
    if (typeof obj1.obj2 !='undefined'){
       console.log(obj1.obj2.obj3);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 2013-09-26
    • 2018-04-27
    • 1970-01-01
    • 2012-07-30
    • 2019-09-05
    • 1970-01-01
    相关资源
    最近更新 更多