【问题标题】:javascript if(-1) {...statement...} evaluates to true [duplicate]javascript if(-1) {...statement...} 计算结果为 true [重复]
【发布时间】:2018-12-27 21:32:11
【问题描述】:

我有一个条件,0 或更多是有效的,而否定是无效的。当我在 JavaScript/TypeScript 中相应地编写代码时,令我惊讶的是它并没有按我预期的方式工作。

代码如下。

if (-1) {
  console.log("truthy")
} else {
  console.log("falsy")
}

这会在控制台中打印以下内容。

真实

应该是falsy吧?

任何帮助,帮助我理解这种行为。我错过了什么?

谢谢

【问题讨论】:

  • -1 是一个真实值。唯一的虚假值是 0""falseundefinednullNaN其他一切都是真实的
  • 不——不对。
  • 0 被认为是一个假值而不是 -1

标签: javascript typescript


【解决方案1】:

JavaScript 中有六个假值:

  • false
  • 0
  • NaN
  • undefined
  • ''
  • null

所有其他值都是真实的。

【讨论】:

    【解决方案2】:

    在 Javascript 中,0 总是被评估为假,任何非零数都是真。

    【讨论】:

      【解决方案3】:

      在 javascript non-zero 中,数字计算为真,而零计算为假。这是一个很好的网页,深入探讨了 javascript 中许多不同值的布尔评估:https://www.sitepoint.com/javascript-truthy-falsy/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-16
        • 2020-12-10
        • 2018-08-27
        • 1970-01-01
        • 2020-11-17
        • 1970-01-01
        相关资源
        最近更新 更多