为什么我会得到结果 6 <= X = false?
Why do I get the result 6 <= X = false?
我正在学习 JavaScript,我正在尝试根据 Beginning JavaScript 中的示例改进代码。具体来说,我正在尝试获取代码以检查结束值是否大于起始值。
如果我输入 50 的起始值和 6 或 8 的结束值,那么 end <= start 我得到 false,即使 6 和 8 都小于 50。如果我输入任何其他值小于超过50,我明白了。我测试过的任何起始值都有同样的问题。我在逻辑上找不到任何错误,所以我一定是误解了代码(或者只是盲目)。
谢谢!
<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 <= start) + "<br/>");
document.write(start + "<br/>");
document.write(end + "<br/>");
}
</script>
</body>
您正在比较字符串表示形式。你应该使用 parseInt
.
试试这个代码:
<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/>");
}
正如您所说的,您是 Js 的新手,因此我不会标记您的问题。但是考虑一下您编写的这段代码的一些事情:
- 此处不应将 NaN 用于 checking/validations
- NaN 总是 return 值 NaN 因此使用整数根本不是最佳实践。
最后进行如下修改
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/>");
}
谢谢和干杯:)
我正在学习 JavaScript,我正在尝试根据 Beginning JavaScript 中的示例改进代码。具体来说,我正在尝试获取代码以检查结束值是否大于起始值。
如果我输入 50 的起始值和 6 或 8 的结束值,那么 end <= start 我得到 false,即使 6 和 8 都小于 50。如果我输入任何其他值小于超过50,我明白了。我测试过的任何起始值都有同样的问题。我在逻辑上找不到任何错误,所以我一定是误解了代码(或者只是盲目)。
谢谢!
<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 <= start) + "<br/>");
document.write(start + "<br/>");
document.write(end + "<br/>");
}
</script>
</body>
您正在比较字符串表示形式。你应该使用 parseInt
.
试试这个代码:
<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/>");
}
正如您所说的,您是 Js 的新手,因此我不会标记您的问题。但是考虑一下您编写的这段代码的一些事情:
- 此处不应将 NaN 用于 checking/validations
- NaN 总是 return 值 NaN 因此使用整数根本不是最佳实践。
最后进行如下修改
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/>"); }
谢谢和干杯:)