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

Sam*_*oum 3 javascript time if-statement operators dayofweek

我试图让这个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 
} 
Run Code Online (Sandbox Code Playgroud)

Nin*_*olz 5

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

if (dayOfWeek >= 4 && dayOfWeek <= 6 && hour >= 17 && hour < 19) {
Run Code Online (Sandbox Code Playgroud)

向右或条件的需要,因为括号的,优先&&||

if ((dayOfWeek == 4 || dayOfWeek == 5 || dayOfWeek == 6) && hour >= 17 && hour < 19 ) {
Run Code Online (Sandbox Code Playgroud)