在JavaScript中,为什么我的“<"以及“>"可以颠倒比较

In JavaScript, why would my "<" and ">" comparisons be reversed?

本文关键字:quot gt 比较 以及 lt JavaScript 为什么 我的      更新时间:2023-09-26

当我在chrome中的html页面上运行此代码,并输入例如number1=1000和number2得到2000时,它会提醒1000更大。为什么?

var number1 = prompt("Pick a number");
var number2 = prompt("Pick another number");
if (number1 < number2) {
    alert(number1 + "is bigger!");
} else if (number2 < number1) {
    alert(number2 + "is bigger!");
} else if (number1 == number2) {
    alert(number1 + "is equal to" + number2)
}

上面有两个问题:

  1. 您的消息是向后

  2. 您比较的是字符串,而不是数字

您需要将prompt的结果转换为数字,并更正显示的消息。

您有几个将字符串转换为数字的选项;我在这个答案中列出了你的选择及其优缺点。

如果只修复#1而不修复#2,那么您最终会说"20"小于"3",因为将字符串与<进行比较会在词法上将它们进行比较,并且"2"位于"3"之前("20"中的"0"甚至从未被查看过)。