我试图让这个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 ) {