我正在尝试检查我的对象文字是否不在我的页面中。
var today = {
okay : true
}
如果这个片段不在我的页面中,我想检查null或undefined但是它会默默地杀死...
if (today.okay == null)
if (today.okay == undefined)
怎么办?
答案 0 :(得分:4)
它失败的原因(它不应该失败静默,它应该抛出异常)是你试图从符号(today
)中检索一个值可能没有定义。
试试这个:
if (typeof today == 'object' && today.okay) {
// It's there
}
else {
// It's not there
}
或者,当然,您可以处理异常:
try {
if (today.okay) {
// 'today' is defined and 'okay' is truthy
}
else {
// 'today' is defined, but 'okay' is not truthy
}
}
catch (e) {
// 'today' is undefined
}
我的印象是大多数JavaScript引擎在抛出异常时非常快(在所有环境中都不是这样),但是如果你预计这种情况并不罕见(不是例外),那么我会用内联逻辑处理它,而不是例外。 例外条件的例外情况。
答案 1 :(得分:2)
假设您需要“okay”为布尔值,您正在寻找的表达式为:
('object' == typeof today && today.okay === true)