我是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');
};
.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');
};