if (json1.a === undefined) 报错,javascript如何判断j'son是否定义了某个成员?

javascript

if (json1.a === undefined) {
    // code
}

报错信息

TypeError: Cannot read property 'a' of undefined

1.请问javascript如何判断j'son是否定义了某个成员?

2.如果是N级成员呢?比如如何判断 a.b.c.d 是否定义?

阅读 2.2k
3 个回答
let obj = {
  a: {
    b: {
      c: 111
    }
  }
}

// console.log(obj.a.b.c);
let c;
try {
  c = obj.a.b.c;
} catch (error) {
  //在错误发生时怎么处理
  c = null;
}

if (c) {
  //TODO  有值的时候做点啥 ...
}

如果obj为null的时候,获取obj.c会报错,但是如果上边那么写,catch会捕获错误并赋值为null,然后就可以为所欲为了。这样做不需要一层一层的去判断他是否有值,比如:if(obj && obj.a && ...)

if (json1 && json1.a) {
    // code
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题