Javascript falsy truthy false true 之间的关系

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"

 

 

 

乘风破浪 ~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值