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

「爱情、让人受尽委屈。」 2021-11-16 06:38 478阅读 0赞

背景

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

Truthy(真值)

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

假值

  1. false0""nullundefined NaN

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

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

  1. if (true)
  2. if ({})
  3. if ([])
  4. if (42)
  5. if ("foo")
  6. if (new Date())
  7. if (-42)
  8. if (3.14)
  9. if (-3.14)
  10. if (Infinity)
  11. if (-Infinity)
  12. 注:Infinity 是全局对象(global object)的一个属性,即它是一个全局变量。
  13. Infinity 的初始值是 Number.POSITIVE_INFINITYInfinity(正无穷大)大于任何值。该值和数学意义上的无穷大很像,例如任何正值乘以 Infinity Infinity, 任何数值(除了Infinity -Infinity)除以 Infinity 0

发表评论

表情:
评论列表 (有 0 条评论,478人围观)

还没有评论,来说两句吧...

相关阅读