如何在JavaScript中否定謂詞函式?


在JavaScript中,謂詞函式是一個返回布林值的函式。換句話說,它是一個測試某個條件是否為真或假的函式。

有時我們需要否定謂詞函式。也就是說,我們需要返回相反的布林值。

在JavaScript中,有多種方法可以否定謂詞函式。

使用!運算子

否定謂詞函式最常見的方法是使用!運算子。

例如,考慮以下謂詞函式:

function isEven(num) {
   return num % 2 === 0;
}

為了否定此函式,我們可以使用!運算子,如下所示:

function isOdd(num) {
   return !isEven(num);
}

上面的isOdd()函式返回isEven()的相反布林值。

使用!!運算子

否定謂詞函式的另一種方法是使用!!運算子。

!!運算子將值轉換為布林值。如果該值已經是布林值,則直接返回。

例如,考慮以下謂詞函式:

function isTruthy(value) {
   return !!value;
}

為了否定此函式,我們可以使用!!運算子,如下所示:

function isFalsy(value) {
   return !!isTruthy(value);
}

上面的isFalsy()函式返回isTruthy()的相反布林值。

使用Boolean()函式

否定謂詞函式的另一種方法是使用**Boolean()**函式。

Boolean()函式將值轉換為布林值。如果該值已經是布林值,則直接返回。

例如,考慮以下謂詞函式:

function isTruthy(value) {
   return Boolean(value);
}

為了否定此函式,我們可以使用Boolean()函式,如下所示:

function isFalsy(value) {
   return Boolean(isTruthy(value));
}

上面的isFalsy()函式返回isTruthy()的相反布林值。

否定謂詞函式有幾個好處:

首先,它可以使我們的程式碼更易讀。考慮以下示例:

function isUserValid(user) {
   return !isAdmin(user);
}

上面的isUserValid()函式比以下等效函式更易讀:

function isUserValid(user) {
   return isAdmin(user) === false;
}

其次,否定謂詞函式可以幫助我們避免錯誤。考慮以下示例:

function isUserValid(user) {
   return isAdmin(user);
}

如果我們忘記否定isAdmin()函式,則isUserValid()函式將始終返回true,而不管使用者引數是什麼。

第三,否定謂詞函式可以幫助我們編寫更簡潔的程式碼。考慮以下示例:

function isUserValid(user) {
   return !isAdmin(user) && isActive(user);
}

上面的isUserValid()函式比以下等效函式更簡潔:

function isUserValid(user) {
   return isAdmin(user) === false && isActive(user) === true;
}

總之,在JavaScript中有多種方法可以否定謂詞函式。最常見的方法是使用!運算子。

其他方法包括使用!!運算子或Boolean()函式。

更新於:2022年8月4日

2K+ 次檢視

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.