说我尝试运行类似的脚本

let currentTime = new Date();
let currentDay = currentTime.getDay();
let currentHour = currentTime.getHours(); // 0-23.

if ( currentDay === 0 || currentDay === 1 || currentDay === 2 || currentDay === 3 || currentDay === 4 || currentDay === 5 && currentHour < 12) {

Do stuff...

}


只要currentHour < 12在那里(最后),它就不起作用。但是,当我删除它时,它没有问题。

我也尝试过(虽然我不知道这并不重要):

if ( currentDay !== 6 || currentDay !== 5 && currentHour < 12 ) {

Do stuff...

}


同样,如果我删除currentHour
在当前版本的JavaScript中,当组合当前日期和当前时间时,是否还可能有条件?



注意

我只在星期五需要&& currentHour < 12

最佳答案

在第一个示例中,如果要将currentHour<12currentDay==5与指标&&进行比较,则可以使用以下代码:

if ( currentDay === 0 || currentDay === 1 || currentDay === 2 || currentDay === 3 || currentDay === 4 || currentDay === 5 && currentHour < 12) {

Do stuff...

}


但是,如果您想将currentHour < 12与所有currentDay进行比较,则可以使用以下代码:

if ( (currentDay === 0 || currentDay === 1 || currentDay === 2 || currentDay === 3 || currentDay === 4 || currentDay === 5) && currentHour < 12) {

Do stuff...

}


但是,就像@RobG所说的那样,这样做是最漂亮的:

if ( currentDay<=5 && currentHour < 12) {

Do stuff...

}




编辑

当然,如果只想将currentDaycurrentHour进行比较,则可以这样:

if ( currentDay <= 6 || (currentDay === 5 && currentHour < 12)) {

Do stuff...

}


在这里,运算符()将currentDaycurrentHour分组,并仅比较它们而没有其他语句。



在此示例中,运算符()将所有currentDay进行分组,将它们进行比较(就像if条件女巫返回布尔值),然后将布尔值与currentHour < 12(或下一条语句)进行比较。

据我了解您的问题,为了比较您条件中的所有陈述,您遇到了问题。如果您有任何问题,请告诉我。

您可以查阅this页面以获取有关运算符的更多信息。

09-05 19:13