为什么我的If-Else语句默认为“ else”?

时间:2019-02-20 01:48:26

标签: javascript date if-statement time

我是JavaScript的新手,并且一直在玩这个小IF-ELSE练习。本质上,插槽1到4是静态的,可以使用||进行实验操作员。 const'testSlot'是我随着时间的流逝而更改的,以尝试执行代码的“ else if”部分。例如,如果我是晚上9:10 只是手动将getHours更改为21,将getMinutes更改为10,然后运行代码。

话虽如此,我无法运行前两个console.logs之一,它始终只运行“ else”(三个)。

我的问题主要是如果date对象的用法错误或If-Else语句中的语法错误。朝着正确方向的指针将不胜感激。

这是我的代码:

const now = new Date();
const slot1 = now.getHours === 12 && getHours.getMinutes === 1;
const slot2 = now.getHours === 12 && getHours.getMinutes === 2;
const slot3 = now.getHours === 12 && getHours.getMinutes === 3;
const slot4 = now.getHours === 12 && getHours.getMinutes === 4;

const testSlot = now.getHours === 20 && getHours.getMinutes === 34;

if (slot1 || slot2 || slot3 || slot4) { 
  
  console.log('one');
  
} else if (testSlot) {  
  
  console.log('two'); 
  
} else {  
  
  console.log('three');
  
};

1 个答案:

答案 0 :(得分:3)

.getHours().getMinutes()都是功能需要括号。另外,getHours.getMinuets()不会做任何事情。您必须执行now.getMinutes()。我为您更新了代码段。它仍然会console.log为三,但这仅仅是因为所有的if语句都是假的。等到12:01,它应该说一个。

const now = new Date();

const slot1 = now.getHours() === 12 && now.getMinutes() === 1;
const slot2 = now.getHours() === 12 && now.getMinutes() === 2;
const slot3 = now.getHours() === 12 && now.getMinutes() === 3;
const slot4 = now.getHours() === 12 && now.getMinutes() === 4;

console.log(now.getHours());
console.log(now.getMinutes());

const testSlot = now.getHours() === 20 && now.getMinutes() === 34;

if (slot1 || slot2 || slot3 || slot4) { 
  
  console.log('one');
  
} else if (testSlot) {  
  
  console.log('two'); 
  
} else {  
  
  console.log('three');
  
};