繁体   English   中英

检查对象键是否存在,并在一个语句中为true

[英]Checking if object key exists and is true in one statement

我有一个javascript对象,可能包含也可能不包含某个键,可能是也可能不是;

{
    myKey: true,
}

我想测试密钥是否存在,如果确实存在,是否为真。 我可以这样做;

if (myObject.myKey == true) {
}

使用松散等于运算符== ,如果myKey未定义或为false,则答案为false,如果为true,则为true。 然而,eslint抱怨'Expected '===' and instead saw '=='. eslint(eqeqeq)' 'Expected '===' and instead saw '=='. eslint(eqeqeq)' 这是一个有效的警告,还是我应该忽略它?

==运算符有许多惊喜,这就是为什么eslint阻止它的原因。 在这种情况下,eslint建议的确切地符合您的要求:

if (myObject.myKey === true) {
}

如果值存在且不是布尔值,则仅在此处出现与==运算符的差异; 例如值1 由于类型转换, 1 == true为真,但1 === true为false。

如果你也想要这种情况的真实价值,那就写吧

if (myObject.myKey) {
}

暂无
暂无

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

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