在JavaScript中如何使用Boolean函数?
JavaScript内置的Boolean
是我最近在代码审查中经常建议使用的东西之一,所以我想与大家分享一些关于它的技巧。
使用Boolean进行真值检查
Boolean()
函数在进行真值检查时特别有用,而且可能比双重否定(!!
)操作更易读:
let x = 'some-value';
// 这看起来不太好
if (!!x) {
// ...
}
// 这更易读
if (Boolean(x)) {
// ...
}
如上面的示例所示,它具有完全相同的功能,并且非常简单易用。同样,由于Boolean()
本身是一个返回布尔值的函数,你可以将其用于真值检查、数组过滤等操作:
const values = [0, 0, 2, 0, 3];
// 作为Array.prototype.some()的回调函数使用
const hasValidValue = values.some(Boolean);
// 作为Array.prototype.filter()的回调函数使用
const nonEmptyValues = values.filter(Boolean);
谨慎处理Boolean对象
虽然Boolean()
函数非常有用,但你可能会在Boolean
对象和Boolean
构造函数中遇到一些问题。Boolean
对象是一个布尔值的对象包装器,但棘手的是,作为一个对象,它始终是真值,即使包含的值是false
!
let x = new Boolean(false);
if (x) {
// 这段代码会被执行
}
例如,上面的代码将认为x
是真值,即使它明显包含false
作为其值。这可能有些令人困惑,但如果你通常避免使用Boolean
对象和Boolean
构造函数,除非你完全确定需要出于某种原因使用它,你可以很容易地避免这个问题。说实话,我找不到任何需要使用它的场景,所以它可能本来就不太常见。