【问题标题】:Why does the comparison ("string" > 0) return false in JavaScript? [duplicate]为什么比较 ("string" > 0) 在 JavaScript 中返回 false? [复制]
【发布时间】:2018-02-05 04:15:09
【问题描述】:

既然“string”是一个非空字符串,它不应该返回true吗?这种比较究竟是如何工作的?

【问题讨论】:

  • 你为什么认为它是真的?

标签: javascript string-comparison


【解决方案1】:

在将字符串与数字进行比较时,JavaScript 会尝试将字符串转换为数字以进行逻辑比较。

"string" 转换为数字会得到NaN,而NaN > 0false

Comparison Operators

【讨论】:

    【解决方案2】:

    这是因为类型转换和 NaN > 0 是错误的简单事实。

    应用于>运算符时,两个操作数都被强制转换为数字,这样比较就变成了

    Number("string") > 0 等价于 NaN > 0,其计算结果为 false

    【讨论】:

      猜你喜欢
      • 2022-08-17
      • 2012-08-09
      • 2019-12-15
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 2015-06-21
      • 2020-07-29
      • 1970-01-01
      相关资源
      最近更新 更多