假值
Falsy(有時也寫作 falsey)值是指在 布林 上下文中被認為是假的值。
JavaScript 在需要布林值的上下文(例如條件語句和迴圈)中,使用型別轉換將任何值強制轉換為布林值。
下表提供了 JavaScript 中 Falsy 值的完整列表:
| 值 | 型別 | 描述 |
|---|---|---|
| null | Null | 關鍵字 null — 任何值的缺失。 |
| undefined | Undefined | undefined — 原始值。 |
false |
Boolean | 關鍵字 false。 |
| NaN | Number | NaN — 非數字。 |
0 |
Number | Number 零,也包括 0.0、0x0 等。 |
-0 |
Number | Number 負零,也包括 -0.0、-0x0 等。 |
0n |
BigInt | BigInt 零,也包括 0x0n 等。注意,沒有 BigInt 負零 — 0n 的負值仍然是 0n。 |
"" |
String | 空的 字串 值,也包括 '' 和 ``。 |
document.all |
Object | JavaScript 中唯一一個 Falsy 物件是內建的 document.all。 |
值 null 和 undefined 也是 nullish(空值)。
示例
JavaScript 中 falsy 值的例子(在布林上下文中被強制轉換為 false,從而 跳過 if 塊)
js
if (false) {
// Not reachable
}
if (null) {
// Not reachable
}
if (undefined) {
// Not reachable
}
if (0) {
// Not reachable
}
if (-0) {
// Not reachable
}
if (0n) {
// Not reachable
}
if (NaN) {
// Not reachable
}
if ("") {
// Not reachable
}
邏輯與運算子,&&
如果第一個物件是 falsy 值,則返回該物件。
js
console.log(false && "dog");
// ↪ false
console.log(0 && "dog");
// ↪ 0