Javascript 开关/比较语句问题
由于某些原因,我无法获得switch语句,我对Javascript还不熟悉,我觉得我的问题更多地与“cat==“string”部分有关,而不是与switch有关 在本例中,假设'data.cat'的值为StartersJavascript 开关/比较语句问题,javascript,Javascript,由于某些原因,我无法获得switch语句,我对Javascript还不熟悉,我觉得我的问题更多地与“cat==“string”部分有关,而不是与switch有关 在本例中,假设'data.cat'的值为Starters function (data) { data = JSON.parse(data); if (!data.success) { // An error was thrown in the controller
function (data) {
data = JSON.parse(data);
if (!data.success) {
// An error was thrown in the controller
alert(data.message);
} else {
switch (cat = data.cat) { //data.cat is Starters
case 0:
cat === "Starters";
console.log("Test a= " + cat);
break;
case 1:
cat === "Mains";
console.log("Test b= " + cat);
break;
case 2:
cat === "Deserts";
console.log("Test c= " + cat);
break;
default:
console.log("Shit.." + data.cat);
break;
}
}
});
正如您从小提琴中看到的,日志报告默认值。为什么会这样?如果开关是在字符串值上进行的,并且每种情况下都需要一个数字值,为什么它会输入除默认值以外的任何内容
var cat = "Starters";
switch (cat) {
case "Starters":
console.log("Test a= " + cat);
break;
case "Mains":
console.log("Test b= " + cat);
break;
case "Deserts":
console.log("Test c= " + cat);
break;
default:
console.log("Shit.." + cat);
break;
}
“在本例中,假设'data.cat'的值为Starters。”
在这种情况下,它意味着
switch(cat=data.cat)
基本上是说switch('Starters')
。显然,在默认情况下,这将始终有效。在询问之前先了解。即使第一种情况(0)应该等于true,也没有任何意义。你是说0
等于“初学者”
?正如我在对Plalx的评论中所说的,这是一次愚蠢的误解。读了这个例子后,我觉得你给开关编号是因为。我现在知道,我错了。不过,我确实花了很多时间试图自己修复它。我完全忽略了整个“案例”的价值。我的坏…顺便说一句,W3学校不是一个学习高质量JavaScript的地方。看一看,它提供了更深入的教程(和正确的信息)。更清楚的解释也是一种胜利。顺便说一句,这个链接不是你问题的重复。(我是不是在一条评论中用了两次“顺便说一句”)啊,我现在明白我错在哪里了。我认为案例0、案例1等是对switch语句进行排序的一种方式。我想,当您依赖W3S示例而没有完全理解时,就会发生这种情况。非常感谢你。