【问题标题】:Javascript condition evaluation: compare number literal [duplicate]Javascript条件评估:比较数字文字[重复]
【发布时间】:2019-11-05 04:12:37
【问题描述】:

我在写 Javascript 条件: "70.5" > "129" evaluate to true, while "70.5" > "729" evaluate to false. 这是什么意思? PS。最后,我得到了parseFloat(70.5) > parseFloat(129) 的代码。想知道为什么我不能直接比较。谢谢。

【问题讨论】:

  • 你没有使用数字文字,你使用的是字符串文字......你不需要parseFloat(70.5),因为70.5是一个数字......而不是"70.5"是一个字符串...所以你会看到70.5 > 129 是假的,70.5 > 729 是假的

标签: javascript


【解决方案1】:

正在发生的事情是字符串文字正在相互比较。当您写数字 70.5 时,JS 将其视为包含字符 '7'、'0'、'.'、'5' 的字符串。

字符串文字通过它们的ASCII 代码进行比较。因此,具有较大 ASCII 代码的字符将比具有较低 ASCII 代码的字符“更大”。

同样,

var a = "a" > "b";
document.write(a); // Gives false

上面的代码被剪掉会打印错误,而

var a = "c" > "b";
document.write(a); // Gives true

将返回 true。

请参阅this 了解更多信息。

【讨论】:

    猜你喜欢
    • 2014-08-23
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    相关资源
    最近更新 更多