前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

truthy

作者头像
阿超
发布2022-08-21 10:58:05
3090
发布2022-08-21 10:58:05
举报
文章被收录于专栏:快乐阿超快乐阿超

我们知道js中如果使用:

代码语言:javascript
复制
if(2){
    console.log("2")
}
image-20211222204333187
image-20211222204333187

可以看到if中代码块执行了

这是因为JavaScript 在布尔值上下文中使用强制类型转换(coercion

而我们if括号中表达式2,由于为truthy,也就是真值

所以被转换为了true

JavaScript 中的真值示例如下(将被转换为 true,if 后的代码段将被执行):

代码语言:javascript
复制
if (true)
if ({})
if ([])
if (42)
if ("foo")
if (new Date())
if (-42)
if (3.14)
if (-3.14)
if (Infinity)
if (-Infinity)

反之,我们也有Falsy

在 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 代码块):

代码语言:javascript
复制
if (false)
if (null)
if (undefined)
if (0)
if (0n)
if (NaN)
if ('')
if ("")
if (``)
if (document.all)

逻辑与操作符 &&

如果第一个对象(译注:原文如此)是 falsy 值,则返回那个对象:

代码语言:javascript
复制
let pet = false && "dog";

// ↪ false
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 例子
    • 逻辑与操作符 &&
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档