【发布时间】:2021-07-08 15:58:38
【问题描述】:
我刚刚开始使用 Javascript 并尝试学习,目前只是基本的东西。
但问题是我真的不明白这个 switch 语句是如何返回 false if age = 0
function isUnderAge(age){
const MAXNUMBER = 120;
const MAXAGE = 18;
const MINAGE = 0;
switch(age){
case(age < MAXAGE && age >= MINAGE && age <= MAXNUMBER):
return true;
default:
return false;
}
}
console.log(isUnderAge(0));
还有其他人看到这个问题吗?
任何帮助将不胜感激!
【问题讨论】:
-
switch将参数与案例进行比较,在本例中,age与布尔值进行比较。我确信这有一个很好的欺骗,但承认它可能很难找到。 -
你认为
age等于age < MAXAGE && age >= MINAGE && age <= MAXNUMBER吗?因为只有这样您的代码才能匹配案例。但是,这很可能是不可能的,因为age将是一个数字,而下一个表达式将是一个布尔值,因此age === age < MAXAGE && age >= MINAGE && age <= MAXNUMBER将始终是false。如果您需要复杂条件,请使用if语句。如果您只需要文字比较age === 1或age === 2等,您可以使用switch(age) { case 1: /* ... */ case 2: /* ... */ }。
标签: javascript tdd