JavaScript中的双重否定运算符有什么作用?

JavaScript的否定运算符(!)是一元运算符,用于反转其操作数的真值。当使用两次时,称为双重否定运算符(!!),它可以用于将一个值转换为布尔值。

const x = 1;
const y = null;

!!x; // true
!!y; // false

使用双重否定运算符在功能上等同于使用Boolean()函数,我们在之前的一篇文章中深入探讨过。就可读性和可用性而言,我仍然建议使用Boolean()函数。它更清晰地传达了操作的意图,并且一目了然。

const x = 1;
const y = null;

Boolean(x); // true
Boolean(y); // false

const values = [0, 0, 2, 0, 3];
// 可读性一般,不太好
values.filter(x => !!x); // [2, 3]
// 可读性更好
values.filter(Boolean); // [2, 3]