繁体   English   中英

javascript测试对象属性

[英]javascript testing for object property

我有一个像这样的字符串:

var TheDate = "6.14.2012";

我有一个对象MyObject ,其属性可以匹配该字符串。 但是,当我这样写:

if (MyObject[TheDate] === null || MyObject[TheDate] === 'undefined') { .... }

即使我知道财产不存在,条件似乎永远不会评估为真。

我错过了什么?

谢谢。

自有财产的存在

如果要检查是否存在属性,请使用.hasownProperty() ...

if (MyObject.hasOwnProperty(TheDate)) {

自有或继承财产的存在

如果属性可以继承,为了测试存在使用in运算符...

if (TheDate in MyObject) {

Own或Inherited Property的nullundefined值测试

如果它不存在,而是一个值测试,并且你想测试nullundefined ,那么使用这个......

if (MyObject[TheDate] == null) {

这将检查nullundefined

问题在于未定义的引号;)

更改

if (MyObject[TheDate] === null || MyObject[TheDate] === 'undefined') { .... }

if (MyObject[TheDate] === null || MyObject[TheDate] === undefined) { .... }

它应该工作:)

如果你想使用字符串"undefined"而不是undefined对象,那么执行此操作的方法是检查“typeof”,它返回一个字符串。 在这种情况下,如果您要测试它是否设置为“undefined”:

if ( MyObject[TheDate] === null || typeof MyObject[TheDate] === 'undefined' ) { .... }

请尝试以下方法

if ( (MyObject[TheDate] === null) || (typeof MyObject[TheDate] === 'undefined') { 
 .... 
}

您正在检查您的属性是否包含字符串'undefined'而不是它的值是否当前undefined

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM