这是我的javascript代码,它应该显示:Okay! Great choice We are working hard for your cake
如果我输入cak
e 或Cake
(注意 c 与大写字母(,但与cake
一起工作得很好,但不能与Cake
一起使用,pancake
和大写 pPancake
也是如此:
var make=prompt("Hey! What you are up to cake or pancake?");
switch(make){
case ("cake" || "Cake"):
console.log("Okay! Great choice We are working hard for your cake");
break;
case ("pancake" || "Pancake"):
console.log("Okay! Great choice We are working hard for your pancake");
break;
default:
console.log("Sorry we Only have cake or pancake to choose from.");
}
"cake" || "Cake"
表达式的计算结果为 true,因为这两个字符串都是真实的。因此,当用户的输入与该值进行比较时,例如"cake" == true
,它的计算结果为 true,因为用户的输入 ("cake"
( 也是真实的。
要忽略用户输入的大小写,您可以在比较之前将其转换为小写(通过make.toLowerCase()
(:
var make = prompt("Hey! What you are up to cake or pancake?");
switch (make.toLowerCase()) {
case "cake":
console.log("Okay! Great choice We are working hard for your cake");
break;
case "pancake":
console.log("Okay! Great choice We are working hard for your pancake");
break;
default:
console.log("Sorry we Only have cake or pancake to choose from.");
}
如果你不熟悉真值或假值的概念,你可以在这里阅读MDN的文档:https://developer.mozilla.org/en-US/docs/Glossary/Truthy https://developer.mozilla.org/en-US/docs/Glossary/falsy
如果左侧为 true 值,则||
运算符的计算结果为左侧,否则计算为右侧。
所以"cake" || "Cake"
,因为"cake"
是一个真值,所以意味着"cake"
。
因此case ("cake" || "Cake"):
意味着case ("cake"):
。
如果要在交换机中有多个匹配项,请具有多个案例。
case ("cake"):
case ("Cake"):
// etc
break;
不变比较:
var make = prompt("Hey! What you are up to cake or pancake?");
if (make.localeCompare("cake".toUpperCase()) == -1) {
console.log("Okay! Great choice We are working hard for your cake");
} else if (make.localeCompare("pancake".toUpperCase()) == -1) {
console.log("Okay! Great choice We are working hard for your pancake");
} else {
console.log("Sorry we Only have cake or pancake to choose from.");
}