Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查对象键是否存在并且在一条语句中是否为true_Javascript_Eslint - Fatal编程技术网

Javascript 检查对象键是否存在并且在一条语句中是否为true

Javascript 检查对象键是否存在并且在一条语句中是否为true,javascript,eslint,Javascript,Eslint,我有一个javascript对象,它可能包含也可能不包含某个键,该键可能是真的,也可能不是真的 { myKey: true, } 我想测试密钥是否存在,如果它确实存在,是否为真。我可以这样做 if (myObject.myKey == true) { } 使用松散相等运算符==,如果myKey未定义或为false,则答案将为false,如果为true,则答案将为true。然而,eslint抱怨“预期的”==,而是看到了“==”。eslint(eqeq)。这是一个有效的警告,还是我应该

我有一个javascript对象,它可能包含也可能不包含某个键,该键可能是真的,也可能不是真的

{
    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
。但想要这种行为的人可能很少。