【发布时间】:2017-12-04 02:18:56
【问题描述】:
如果星期几与我的声明中列出的任何日期匹配,并且将其限制在 17:00 到 19:00 之间,我正在尝试让这个 Javascript 执行某些操作,但是 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 == 5 || dayOfWeek == 6 && hour >= 17 && hour < 19 ) { -
dayOfWeek == 4 || 5 || 6这在 javascript 中无效,您可能想要:[4,5,6].indexOf(dayOfWeek) > -1 && hour >= 17 && hour <19-> 请注意,这是一种略有不同的方法(使用数组)。 -
重述每个条件的条件!
-
@briosheje - 是什么让你想到了
Array#indexOf? #太棒了 -
dayOfWeek == 4== 真或假。而dayOfWeek == 4 || 5将产生 true 或 5。而dayOfWeek == 4 || 5 || 6仍将产生 true 或 5。它不会做你想要的。
标签: javascript if-statement time operators dayofweek