Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在IF语句中使用and运算符时出现问题_Javascript - Fatal编程技术网

Javascript 在IF语句中使用and运算符时出现问题

Javascript 在IF语句中使用and运算符时出现问题,javascript,Javascript,我相信问题源于&&运算符,因为当我将其切换到| |时会得到一个结果。如果我保留它&&结果不会返回 我的代码如下 <!DOCTYPE html> <html> <body> <p id="greeting"></p></center> <script> var time = new Date().getHours(); let phrase = ""; if ((time > 6) &&

我相信问题源于&&运算符,因为当我将其切换到| |时会得到一个结果。如果我保留它&&结果不会返回

我的代码如下

<!DOCTYPE html>
<html>
<body>

<p id="greeting"></p></center>

<script>
var time = new Date().getHours();
let phrase = "";

if ((time > 6) && (time < 12)) {
    phrase = "Good Morning";
} else if ((time > 12) && (time < 18)) {
    phrase = "Good Afternoon";
} else if ((time >= 18) && (time <= 6)) {
    phrase = "Good Evening";
}
document.getElementById("greeting").innerHTML = phrase;
</script>

</body>
</html>

var time=新日期().getHours(); 让短语=”; 如果((时间>6)和&(时间<12)){ 短语“早上好”; }否则,如果((时间>12)和(&(时间<18)){ 短语“下午好”;
}else if((time>=18)&(time您的最终
if
语句将永远不会计算为
时间
不能大于(或等于)
18
,同时它小于(或等于)
6
。您正在寻找
语句(
|
)这里,由于
时间总是在下午6点之后(
>18
)或早上6点之前(
<6
),因此不能同时是:

else if ((time >= 18) || (time <= 6))

个人技术熟练程度1
仿真器


您的最终
if
语句将永远不会计算为
true
时间不能大于(或等于)
18
,同时它小于(或等于)
6
。您正在寻找
语句(
|
)这里,由于
时间总是在下午6点之后(
>18
)或早上6点之前(
<6
),因此不能同时是:

else if ((time >= 18) || (time <= 6))

个人技术熟练程度1
仿真器


为什么
&&
是罪魁祸首?很明显,这是你的条件…怎么可能大于18但小于6?这是不可能的。是的,我肯定忽略了这一点,我在以一种奇怪的方式思考它。谢谢你的帮助。为什么
&&
是罪魁祸首?很明显,这是你的条件…怎么可能比你的条件更大呢18但少于6?这是不可能的。是的,我肯定忽略了这一点,我在以一种奇怪的方式思考它。谢谢你的帮助。应该删除最后一个
else if
语句,并将其转换为
else
,考虑到最后的
if
条件语句,如果实际检查剩余小时,则没有意义所有可能的情况,这是一个很好的观点。我刚刚更新了我的答案来提到这一点。我感谢你的帮助,谢谢。所以我的目标是找到6-12,12-6点,6点到6点的时间窗口。有没有更好的方法来做到这一点?我试着查找一个具有范围的中间操作符,但无法真正找到。我知道如何在Pyth中找到它在但不是JS上。没问题!如果您希望在每种情况下应用相同的逻辑,您可以使用,但考虑到您希望对三种状态中的每一种应用不同的逻辑,三个独立的
if
条件可能是您的最佳选择。您应该删除最后一个
else if
语句并将其转换为
else
,如果havi检查剩余时间实际上,考虑到最后的
如果
条件现在涵盖了所有可能的场景,这是一个很好的观点。我刚刚更新了我的答案提到这一点。我感谢你的帮助,谢谢。所以我的目标是找到时间窗口6-12,12-6pm,6pm到6am。有没有更好的方法来做到这一点?我试着寻找你p a between运算符具有一个范围,但无法真正找到。我知道在Python中如何处理它,而不是在JS中。没有问题!如果您希望在每种情况下应用相同的逻辑,您可以使用,但考虑到您希望对三种状态中的每种应用不同的逻辑,三个独立的
if
条件可能是您最好的选择。