簡體   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