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]