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

标签 javascript if-statement time 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 
} 

最佳答案

在这种情况下,您最好使用范围检查,因为您只需要对三个或更多个进行两次比较 - 而且它更易于维护,只需在必要时更改一个值即可。

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

正确的 OR 条件需要括号,因为 precedence && 超过 ||

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

关于Javascript OR 运算符在 if 语句中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44841084/

相关文章:

javascript - 王牌编辑器 : disable vertical scrolling

MySQL - 使用一个字段的值按名称定位另一个字段

sql - 如果表存在则执行 select 语句

javascript - Angular 2 文档/是否有 angular 2 的 ngdocs?

javascript - 为什么我的 onclick 不覆盖之前执行的 js 函数?

java - 将多个 'if' 语句放入一个输出流中

Python:如何解析和检查时间?

C# 增量时间实现

java - SimpleDateFormat 添加 7 小时?

javascript - 修改JSON对象