gpt4 book ai didi

javascript - 为什么 switch case 中的逻辑 OR 运算符会表现得很奇怪?

转载 作者:行者123 更新时间:2023-12-01 14:50:52 25 4
gpt4 key购买 nike

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));


有没有办法使这项工作?

最佳答案

因为它不打算以这种方式使用。||如果它是真实的,则返回它的第一个操作数,否则它的第二个操作数。3 || 4返回 3因为3是真实的,因此case只会检查 3 :

console.log(3 || 4); //3, because it is truthy
console.log(0 || 1); //1, because 0 is falsy

为了使您的代码正常工作,请使用单独的案例,这些案例包括:

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));

关于javascript - 为什么 switch case 中的逻辑 OR 运算符会表现得很奇怪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62384937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com