为什么我得到结果6< = X = false?

时间:2016-02-26 19:11:53

标签: javascript boolean-expression

我正在学习JavaScript,而我正试图从Beginning JavaScript的示例中改进代码。具体来说,我试图让代码检查结束值是否大于起始值。

如果我输入起始值50且结束值为6或8,那么我得到假结束< = start,即使6和8都小于50.如果我输入任何其他值小于50 50,我明白了。我测试的任何起始值都有同样的问题。我在逻辑中找不到任何错误,所以我必须误解代码(或者只是盲目)。

谢谢!



Users




3 个答案:

答案 0 :(得分:5)

您正在比较字符串表示。您应该使用parseInt

答案 1 :(得分:0)

试试这段代码:

<body>
  <script>
    while (isNaN(start) == true) {
      var start = prompt("Enter starting value", "");
    }


while (isNaN(end) || end <= start) {
  var end = prompt("Enter ending value", "");
  document.write((end.parseDouble <= start.parseDouble) + "<br/>");
  document.write(start + "<br/>");
  document.write(end + "<br/>");
}

答案 2 :(得分:0)

正如你所说的那样,你是Js的新手,因此我不会将你的问题标记下来。但是请考虑一下你写的这段代码:

  1. 此处不应使用NaN进行检查/验证
  2. NaN始终返回值NaN,因此使用整数不是最佳实践。
  3. 最后进行以下更改

    while (isNaN(start) == true) {
      var start = prompt("Enter starting value", "");
    }    
    
    while (isNaN(end) || (parseInt(end) <= parseInt(start))) {
      var end = prompt("Enter ending value", "");
      document.write((parseInt(end) <= parseInt(start)) + "<br/>");
      document.write(start + "<br/>");
      document.write(end + "<br/>");
    }
    
  4. 谢谢&amp;干杯:)