[英]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.