JavaScript中的`真值`和`假值`
本文解释了JavaScript中的truthy和falsy。
YouTube Video
JavaScript中的真值和假值
JavaScript中的真值和假值概念非常重要,特别是在条件语句的评估中。真值和假值决定了一个值是被评估为true(真)还是false(假),但这些值本身不一定是布尔值true或false。
假值
假值是指在JavaScript条件语句中被评估为false的值。以下是JavaScript中的假值列表。
1const values = [
2 false,
3 0,
4 -0,
5 0.0,
6 -0.0,
7 0n,
8 -0n,
9 "",
10 null,
11 undefined,
12 NaN
13];
14
15for (let value of values) {
16 if (value) {
17 console.log(`${value} is truthy`);
18 } else {
19 console.log(`${value} is falsy`);
20 }
21}在此示例中,所有假值都会输出为"falsy"。以下是JavaScript中的假值列表。
false— 布尔类型中的false0— 数字零(十进制0.0也是假值)-0— 负零(技术上与0不同,但仍然是假值)0n— BigInt类型中的零""— 长度为0的空字符串null— 表示没有值undefined— 未定义的值NaN— 不是数字
在逻辑操作和条件语句(如if语句)中,这些值被视为false。
真值
所有不是假值的值都是真值。这指的是被评估为布尔值true的值。在JavaScript中,许多值被视为真值。
1const values = [
2 true,
3 1,
4 -1,
5 "Hello",
6 " ",
7 [],
8 {},
9 function() {},
10 Symbol(),
11 Infinity
12];
13
14for (let value of values) {
15 if (value) {
16 console.log(value, ' is truthy');
17 } else {
18 console.log(value, ' is falsy');
19 }
20}在此代码中,truthy 值会作为 "truthy" 输出。例如,以下值是 truthy。
true— 布尔类型中的true- 数字(非 0)— 例如,
1和-1也是“真值”。 - 字符串(非空)— 例如,
"Hello"或" "(即使是只有空格的字符串也是truthy) - 对象 — 即使是空对象(
{})和数组([])也是“真值”。 - 函数 — 函数本身也属于“真值”。
Symbol— 类型为Symbol的值也是truthy。- “Infinity” — 正无穷和负无穷都属于“真值”。
truthy 和 falsy 的应用
truthy 和 falsy 的概念通常用于条件表达式和逻辑操作中。例如,在使用 ||(逻辑或)运算符设置默认值时,第一个 truthy 值会作为结果返回。
如何检查 falsy 值
要检查 falsy 值,使用 Boolean 函数很方便。Boolean 函数会显式地将给定值转换为布尔类型。
Boolean 函数的示例
1const values = [
2 false,
3 0,
4 "",
5 null,
6 undefined,
7 NaN
8];
9
10for (let value of values) {
11 console.log(`${value} is ${Boolean(value) ? 'truthy' : 'falsy'}`);
12}结论
在 JavaScript 中,truthy 和 falsy 对理解非布尔值在条件表达式中的评估方式非常重要。falsy 值包括 false、0、空字符串、null、undefined 和 NaN,而其他所有值都被评估为 truthy。理解这些概念可以帮助你编写更灵活、高效的代码。
您可以在我们的YouTube频道上使用Visual Studio Code跟随上述文章进行学习。 请也查看我们的YouTube频道。