javascript的Truthy(真值)和Falsy(虛值)
阿新 • • 發佈:2022-03-22
Truthy(真值)
在 JavaScript 中,truthy(真值)指的是在布林值上下文中,轉換後的值為真的值。所有值都是真值,除非它們被定義為 假值(即除 false
、0
、-0
、0n
、""
、null
、undefined
和 NaN
以外皆為真值)。
JavaScript 在布林值上下文中使用強制型別轉換(coercion)。
JavaScript 中的真值示例如下(將被轉換為 true,if
後的程式碼段將被執行):
if (true) if ({}) if ([]) if (42) if ("foo") if (new Date()) if (-42) if (3.14) if (-3.14)if (Infinity) if (-Infinity)
Falsy(虛值)
falsy 值 (虛值) 是在 Boolean 上下文中認定為 false 的值。
JavaScript 在需要用到布林型別值的上下文中使用強制型別轉換(Type Conversion )將值轉換為布林值,例如條件語句和迴圈語句。
在 JavaScript 中只有 8 個 falsy 值。
》這意味著當 JavaScript 期望一個布林值,並被給與下面值中的一個時,它總是會被當做 false。
false |
false 關鍵字 | |
0 | 數值 zero | |
-0 | 數值 負 zero | |
0n | 當 BigInt0n 是 falsy 值. |
|
"", '', `` |
這是一個空字串 (字串的長度為零). JavaScript 中的字串可用雙引號 |
|
null | null - 缺少值 | |
undefined | undefined - 原始值 | |
NaN | NaN - 非數值 |
例子
JavaScript 中 falsy 值的例子 (在布林值上下文中被轉換為 false,從而繞過了 if
程式碼塊):
if (false) if (null) if (undefined) if (0) if (0n)if (NaN) if ('') if ("") if (``) if (document.all)