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

问题描述 投票:1回答:1

我是JavaScript的新手,刚刚玩弄了这个小小的IF-ELSE练习。从本质上讲,1到4的插槽是静态的以试验||运营商。 const'testSlot'是我随着时间的推移而改变的尝试并执行我的代码的“else if”段;例如,如果它是9:10 PM我刚刚手动将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');
  
};
javascript date if-statement time
1个回答
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');
  
};
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.