如何在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()的相反布尔值。

Learn JavaScript in-depth with real-world projects through our JavaScript certification course. Enroll and become a certified expert to boost your career.

使用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+ 次查看

启动您的职业生涯

完成课程获得认证

开始学习
广告