我在 javascript 中遇到循环问题。
我突然遇到一个奇怪的问题,对于某些值,我的循环不会触发,即使它看起来应该触发。
var j = holiday_starts;
console.log(j);
console.log(holiday_ends);
if (j<=holiday_ends){
console.log("TRUE");
}
在本例中,holiday_starts
为 6,holiday_ends
为 10(通过控制台日志检查)。这不是记录真实的。它只发生在某些情况下,而不发生在其他情况下。
如果我直接设置变量(j = 6,holiday_ends = 10
),那么它将记录 TRUE。
我错过了什么?这是由于我的代码中的其他内容造成的吗?
最佳答案
我怀疑您将 Holiday_starts 和 Holiday_ends 作为字符串(可能来自用户输入?)。发生这种情况时,比较将作为字符串进行,并且 6 在字母表中位于 1 之后,“6” < “10” 为 false,如以下代码段所示:
var holiday_starts = "6";
var holiday_ends = "10";
var j = holiday_starts;
console.log(j);
console.log(holiday_ends);
if (j<=holiday_ends){
console.log("TRUE");
}
在这种情况下,您应该在比较之前parseInt
输入,以下代码片段按预期工作:
var holiday_starts = parseInt("6");
var holiday_ends = parseInt("10");
var j = holiday_starts;
console.log(j);
console.log(holiday_ends);
if (j <= holiday_ends) {
console.log("TRUE");
}
关于javascript - 即使应该进入循环也不进入循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42439747/