JavaScript条件判断true详解? true VS Truthy(真值)

背景

写js 条件判断语句的时候,经常会困惑 到底什么情况下if()括号内会返回真,空字符串、空数组、数字会返回什么。这里MDN已经有专门的的解释,区别与布尔值的true,对于表达式返回真值统称为Truthy.

Truthy(真值)

在 JavaScript 中,truthy(真值)指的是在布尔值上下文中,转换后的值为真的值。
所有值都是真值,除非它们被定义为 假值(即除 false、0、""、null、undefined 和 NaN 以外皆为真值)。

假值

false、0、""、null、undefined 和 NaN

真值(上面几个值以外都为truthy)

只需记住上面几个假值,其他所有情况为真。
特别是空数组[]和空{},都返回真。
举例

if (true)
if ({})
if ([])
if (42)
if ("foo")
if (new Date())
if (-42)
if (3.14)
if (-3.14)
if (Infinity)
if (-Infinity)
注:Infinity 是全局对象(global object)的一个属性,即它是一个全局变量。
Infinity 的初始值是 Number.POSITIVE_INFINITY。Infinity(正无穷大)大于任何值。该值和数学意义上的无穷大很像,例如任何正值乘以 Infinity 为 Infinity, 任何数值(除了Infinity 和 -Infinity)除以 Infinity 为 0。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值