javascript - 检查对象键是否存在并且在一个语句中为真
问题描述
我有一个 javascript 对象,它可能包含也可能不包含某个键,该键可能是也可能不是;
{
myKey: true,
}
我想测试密钥是否存在,如果确实存在,是否为真。我可以这样做;
if (myObject.myKey == true) {
}
使用松散相等运算符==
,如果未定义或为假,答案将为myKey
假,只有当它为真时才为真。但是,eslint 抱怨'Expected '===' and instead saw '=='. eslint(eqeqeq)'
。这是一个有效的警告,还是我应该忽略它?
解决方案
==
运营商有很多惊喜,这也是 eslint 不鼓励它的原因。在这种情况下,eslint 的建议完全符合您的要求:
if (myObject.myKey === true) {
}
==
仅当值存在且不是布尔值时,才会出现与运算符的差异;例如值1
。由于类型转换,1 == true
为真,但1 === true
为假。
如果您还想要此类情况的真实值,只需编写
if (myObject.myKey) {
}
推荐阅读
- tensorflow - 模块“tensorflow.python.keras.datasets.fashion_mnist”没有属性“load_data”
- html - Bootstrap - 使列在断点上可见/隐藏不工作
- swagger - 是否可以指定任何招摇消费?
- connection-timeout - jenkins-cli 为长时间运行的作业构建触发器连接超时
- caching - 来自 Odoo 的不安全资源的混合内容警告
- python - 在 discord.py 中将类文件对象解析为 create_ffmpeg_player 不起作用
- angularjs - 仅当条件有效时才启用按钮
- vba - Excel VBA另存为名称“MONTH”转换为数字(两位数)
- ios - “无法下载应用程序”,但可以通过 Xcode 安装
- docker - Docker nginx 不会开始说我的文件是一个目录(Windows)