1. 程式人生 > 其它 >javascript的Truthy(真值)和Falsy(虛值)

javascript的Truthy(真值)和Falsy(虛值)

Truthy(真值)

在 JavaScript 中,truthy(真值)指的是在布林值上下文中,轉換後的值為真的值。所有值都是真值,除非它們被定義為 假值(即除 false0-00n""nullundefined 和 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 當 BigInt
 作為布林值使用時, 遵從其作為數值的規則. 0n 是 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)

摘自:Truthy(真值) - 術語表 | MDN (mozilla.org)