当前位置: 首页 > 工具软件 > falsy > 使用案例 >

Javascript falsy truthy false true 之间的关系

刘博雅
2023-12-01

1. 什么是 falsy ?

MDN上这样说:

falsy (sometimes written falsey) value is a value that is considered false when encountered in a Boolean context.

—— falsy  (虚值) 是在 Boolean 上下文中认定为 false 的值。

JavaScript 在需要用到布尔类型值的上下文中使用强制类型转换将值转换为布尔值,例如条件语句循环语句

在 JavaScript 中只有 8 个 falsy 值。这 8 个值会被强制类型转换为 false

falsefalse 关键字
0数值 zero 
-0数值 负 zero 
0n当 BigInt 作为布尔值使用时, 遵从其作为数值的规则. 0n 是 falsy 值.
"", '', ``

空字符串(empty string). JavaScript 中的字符串可用双引号 "", 单引号 '', 或 模板字面量 `` 定义

null缺少值
undefined原始值
NaNNot-A-Number

2. 什么是 truthy ?

MDN上这样说:

In JavaScript, a truthy value is a value that is considered true when encountered in a Boolean context. 

—— 在 JavaScript 中,truthy(真值)指的是在 Boolean 上下文中,转换后的值为真的值。

除了 falsy 的值(上文已列出),都是 truthy

3. falsy truthy false true 之间关系?

1. falsy :在需要用到 Boolean 类型的时候,表现为 false 的都是 falsy

2. truthy:在需要用到 Boolean 类型的时候,表现为 true 的都是 truthy

3. 除了八种 falsy 值,全部都是 truthy

4. 示例

4.1 在条件语句中,下述全部会跳过

if (false)
if (null)
if (undefined)
if (0)
if (-0)
if (0n)
if (NaN)
if ('')
if ("")
if (``)
if (document.all)

知识补充:

document.all 在过去被用于浏览器检测,是 HTML 规范在此定义了故意违背 ECMAScript 的标准,要求浏览器将 document.all 视作 falsy

HTML5 标准已将 document.all 废弃。

4.2 逻辑与操作符 &&

如果第一个对象是 falsy 值,则返回第一个对象;

如果第一个对象是 truthy 值,则返回第二个对象;

let pet1 = false && "dog";
// ↪ false

let pet2 = true && "dog";
// ↪ "dog"

 

 

 

乘风破浪 ~

 类似资料: