在 JavaScript 中,有一些值被转换为布尔类型时被视为假(false
),这些值被称为假值(falsy values)。以下是 JavaScript 中被视为假值的一些常见情况:
-
false
:布尔字面量false
。 -
0
:数字0
。 -
""
:空字符串。 -
null
:空值。 -
undefined
:未定义的值。 -
NaN
:非数字值。
除了上述假值,所有其他值都被视为真值(truthy values),包括以下情况:
-
true
:布尔字面量true
。 -
非零的数字:除了
0
以外的任何数字都被视为真值。 -
非空字符串:包含至少一个字符的字符串都被视为真值。
-
非空对象和数组:包括空对象
{}
和空数组[]
在内的对象和数组都被视为真值。 -
函数:所有函数都被视为真值。
-
特殊对象:例如
new Boolean(false)
、new Number(0)
、new String("")
等,它们被视为真值。
当需要将一个值转换为布尔类型时(例如在条件语句中使用),JavaScript 会自动进行类型转换,将其转换为对应的布尔值。可以使用逻辑非操作符 !
来显式地将值转换为布尔类型。
例如:
let x = 0;
if (x) {
console.log("真值");
} else {
console.log("假值"); // 输出 "假值"
}
// let y = new Boolean(false);
// let y = new Number(0);
// let y = new String("");
// if (y) {
// console.log("真值"); // 输出 "真值"
// } else {
// console.log("假值");
// }
在上面的例子中,变量 x
的值为 0
,被视为假值,因此在条件语句中执行了假值分支。