Javascript 检查对象键是否存在并且在一条语句中是否为true
我有一个javascript对象,它可能包含也可能不包含某个键,该键可能是真的,也可能不是真的Javascript 检查对象键是否存在并且在一条语句中是否为true,javascript,eslint,Javascript,Eslint,我有一个javascript对象,它可能包含也可能不包含某个键,该键可能是真的,也可能不是真的 { myKey: true, } 我想测试密钥是否存在,如果它确实存在,是否为真。我可以这样做 if (myObject.myKey == true) { } 使用松散相等运算符==,如果myKey未定义或为false,则答案将为false,如果为true,则答案将为true。然而,eslint抱怨“预期的”==,而是看到了“==”。eslint(eqeq)。这是一个有效的警告,还是我应该
{
myKey: true,
}
我想测试密钥是否存在,如果它确实存在,是否为真。我可以这样做
if (myObject.myKey == true) {
}
使用松散相等运算符
==
,如果myKey
未定义或为false,则答案将为false,如果为true,则答案将为true。然而,eslint抱怨“预期的”==,而是看到了“==”。eslint(eqeq)
。这是一个有效的警告,还是我应该忽略它?操作员有很多惊喜,这就是为什么eslint不鼓励它。在这种情况下,eslint的建议完全符合您的要求:
if (myObject.myKey === true) {
}
只有当值存在且不是布尔值时,才与==
运算符存在差异;e、 g.值1
。由于类型转换,1==true
为true,但1===true
为false
如果您还需要此类情况的真实值,只需编写
if (myObject.myKey) {
}
就在钱上。在chrome控制台上进行了测试,它完全符合我的要求。感谢并不是所有的真值都是
==true
。但想要这种行为的人可能很少。