Javascript 为什么此开关返回错误的结果?

Javascript 为什么此开关返回错误的结果?,javascript,switch-statement,break,Javascript,Switch Statement,Break,所以这段代码当然起作用了: var日; 开关(新日期().getDay()){ 案例0: day=“星期日”; 打破 案例1: day=“星期一”; 打破 案例2: day=“星期二”; 打破 案例3: day=“星期三”; 打破 案例4: day=“星期四”; 打破 案例5: day=“星期五”; 打破 案例6: day=“星期六”; } document.getElementById(“demo”).innerHTML=“今天是”+天; 您需要中断语句的原因是开关的工作方式不同。当您遇

所以这段代码当然起作用了:


var日; 开关(新日期().getDay()){ 案例0: day=“星期日”; 打破 案例1: day=“星期一”; 打破 案例2: day=“星期二”; 打破 案例3: day=“星期三”; 打破 案例4: day=“星期四”; 打破 案例5: day=“星期五”; 打破 案例6: day=“星期六”; } document.getElementById(“demo”).innerHTML=“今天是”+天;
您需要
中断
语句的原因是
开关
的工作方式不同。当您遇到类似的多个条件时,它将从匹配开始,然后继续,直到结束,或者直到被
break
中断。因此,对于星期二,实际的代码流如下所示:

case 2:
    day = "Tuesday";
    day = "Wednesday";
    day = "Thursday";
    day = "Friday";
    day = "Saturday";
case 2:
    day = "Tuesday";
    break;
而你最后的结局是星期六
。如果您在调试器中单步执行代码(例如,使用Chrome开发工具),您可以很容易地看到这一点

如果在每个
案例的结尾处放置
break
,则流程如下:

case 2:
    day = "Tuesday";
    day = "Wednesday";
    day = "Thursday";
    day = "Friday";
    day = "Saturday";
case 2:
    day = "Tuesday";
    break;

然后,您将使用
星期二

break来结束语句的执行,这些语句只应在这种情况下运行。
如果没有中断,语句将继续执行,直到达到最后一种情况或默认情况。

Read。不要想当然。了解“中断”
的作用,您将有一个愉快的时刻