【发布时间】:2013-06-23 16:44:50
【问题描述】:
typeof(nonexistingobj)
返回“未定义”但
typeof(nonexistingobj.nonexistentproperty)
不会像我预期的那样生成“未定义”,而是称为Reference Error - 我如何检测到这个?
我正在尝试对来自 API 的响应进行子属性检测。 (具体来说,当需要获取另一页 API 结果时,API 返回一个名为 data.paging.next 的子对象,但如果只返回最后一页,则没有“下一个”子对象)。
【问题讨论】:
-
尝试引用不存在的对象上的属性时会出现 ReferenceError。所以在你的情况下,
obj不存在(所以它是未定义的)。您可以通过检查"undefined" === typeof(obj)检测到这一点 -
typeof是一个运算符,而不是一个函数。你可以像typeof obj.nonexistentproperty一样使用它。 -
您可以通过将调用包装在 try-catch statement 中来检测 ReferenceError
标签: javascript node.js error-handling referenceerror