作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 JavaScript 的新手,刚刚开始玩这个 IF-ELSE 小练习。本质上,插槽 1 到 4 是静态的,用于试验 ||运算符(operator)。 const 'testSlot' 是我随着时间的推移而改变的,以尝试执行我的代码的“else if”部分;例如,如果现在是晚上 9:10,我已经只是手动将 getHours 更改为 21,将 getMinutes 更改为 10,然后运行代码。
话虽如此,我无法让前两个 console.logs 中的任何一个运行,它总是只运行“else”,即三个。
我的问题主要是我对日期对象的使用是否有误,或者我的 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');
};
关于javascript - 为什么我的 If-Else 语句默认为 "else"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54777620/
我是一名优秀的程序员,十分优秀!