Javascript OR运算符不在if语句中工作

我试图让这个Javascript做一些事情,如果星期几匹配我的声明中列出的任何日期,并将其限制在17:00和19:00之间,但OR运算符不工作正如我所料,我是JS的新手,我想知道我是否误解了这个运算符的用法.如果我要列出一周中一天的值,而不是像我的例子中那样列出3,那么代码就像我希望的那样工作.

var d = new Date();
var dayOfWeek = d.getDay(); // 0 = Sunday
var hour = d.getHours();

if ( dayOfWeek == 4 || 5 || 6 && hour >= 17 && hour < 19 ){
    // do stuff
  } else {
    // do other stuff 
} 

解决方法:

在这种情况下,您最好使用范围检查,因为您只需要对三个或更多进行两次比较 – 如果需要,只需更改一个值就可以更好地维护.

if (dayOfWeek >= 4 && dayOfWeek <= 6 && hour >= 17 && hour < 19) {

正确的OR条件需要括号,因为precedence&& amp;结束||

if ((dayOfWeek == 4 || dayOfWeek == 5 || dayOfWeek == 6) && hour >= 17 && hour < 19 ) {
上一篇:编译报错 error: expected ‘;’, ‘,’ or ‘)’ before ‘switch’


下一篇:unittest框架