【问题标题】:How can i check if an object is undefined (javascript)? [duplicate]如何检查对象是否未定义(javascript)? [复制]
【发布时间】:2017-08-02 22:29:04
【问题描述】:

我必须检查一个对象是否未定义,但当我这样做时

typeof myUnexistingObject.myUnexistingValue == 'undefined'

我收到这个错误

Uncaught ReferenceError: myUnexistingObject is not defined

那么,我如何检查未定义的对象或属性?

【问题讨论】:

  • 由于对象是未定义的,所以在检查值之前首先需要检查对象是否已定义
  • 嗯,我试图检查未定义的对象,如果它不是未定义的,我必须检查它是否有一些未定义的值,但我得到一个错误,“无法读取未定义的属性'原始'”。
  • @Manu:如果变量为空或不存在,则不要访问该属性。
  • 如需更优雅的检查嵌套对象属性,您可以使用@georg 在here 中提出的方法或查看这篇成熟的帖子JavaScript test for existence of nested object key

标签: javascript undefined javascript-objects


【解决方案1】:

您必须在使用之前检查每个可能定义的属性:

function checkUnexistingObject(myUnexistingObject) {
  if (myUnexistingObject !== undefined) {
    if (myUnexistingObject.otherObject !== undefined) {
      console.log("All is well");
    }
  }
}
checkUnexistingObject({});
checkUnexistingObject({otherObject: "hey"});

【讨论】:

  • 这仍然会在 OP 的情况下引发错误,因为 myUnexisistingObject 甚至没有被声明。
  • 我不认为 op 说 myUnexistingObject 没有被声明。
  • 但他们得到的错误说明了这一点。
  • 好的,我知道你的意思,但是声明了 !== defined。
  • 当然。我只是说 OP 会在你的解决方案中得到完全相同的错误。
猜你喜欢
  • 2011-08-15
  • 2012-04-28
  • 1970-01-01
  • 2013-03-16
  • 1970-01-01
  • 2015-09-27
  • 2017-01-09
  • 2010-10-02
  • 2012-06-05
相关资源
最近更新 更多