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)

posted @ 2022-03-22 09:35  张颖辉  阅读(239)  评论(0编辑  收藏  举报