如何检查对象文字是否在页面中?

时间:2010-03-10 09:57:45

标签: javascript

我正在尝试检查我的对象文字是否不在我的页面中。

var today = { 
      okay : true 
   }

如果这个片段不在我的页面中,我想检查null或undefined但是它会默默地杀死...

 if (today.okay == null)
 if (today.okay == undefined) 

怎么办?

2 个答案:

答案 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)​​​