该testMyNumber函数似乎认为第二个位置的数字不匹配。
为什么 4 和 10 返回默认情况?
function testMyNumber(number) {
switch (number) {
case 6:
return number+" is 6";
break;
case (3 || 4) :
return number+" is 3 or 4";
break;
case 9 || 10 :
return number+" is 9 or 10";
break;
default:
return number+" is not in 3,4,6,9,10";
break;
}
};
console.log(testMyNumber(6));
console.log(testMyNumber(3));
console.log(testMyNumber(4));
console.log(testMyNumber(9));
console.log(testMyNumber(10));Run Code Online (Sandbox Code Playgroud)
有没有办法使这项工作?
FZs*_*FZs 14
因为它不打算以这种方式使用。
|| 如果为真,则返回其第一个操作数,否则返回第二个操作数。
3 || 4返回3,因为3是真的,所以case只会检查3:
console.log(3 || 4); //3, because it is truthy
console.log(0 || 1); //1, because 0 is falsyRun Code Online (Sandbox Code Playgroud)
为了使您的代码工作,请使用单独的案例,这些案例会失败:
function testMyNumber(number) {
switch (number) {
case 6:
return number+" is 6";
case 3:
case 4:
return number+" is 3 or 4";
case 9:
case 10:
return number+" is 9 or 10";
default:
return number+" is not in 3,4,6,9,10";
}
};
console.log(testMyNumber(6));
console.log(testMyNumber(3));
console.log(testMyNumber(4));
console.log(testMyNumber(9));
console.log(testMyNumber(10));Run Code Online (Sandbox Code Playgroud)
为什么 4 返回默认情况?
因为(3 || 4)等于3,所以case (3 || 4):和写作一样case 3:。
您使用的语法不正确。像这样写:
case 3:
case 4:
return number + " is 3 or 4";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |