Javascript 开关/比较语句问题

Javascript 开关/比较语句问题,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

由于某些原因,我无法获得switch语句,我对Javascript还不熟悉,我觉得我的问题更多地与“cat==“string”部分有关,而不是与switch有关

在本例中,假设'data.cat'的值为Starters

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示例而没有完全理解时,就会发生这种情况。非常感谢你。