JavaScript switch 怎么用

早上想定8点的闹钟,结果手机里的闹钟APP里,“周一到周五”“周六周日”“节假日”三个选项,选对了才能准点响。其实这种“按情况选不同操作”的场景,和前端开发里的JavaScript(简称JS)switch用法一模一样——它就是个专门处理“多种情况选对应事儿做”的工具,比一堆if-else读着更清爽。

---

JavaScript switch 怎么用

先搞懂:switch能解决啥问题?

平时写代码,经常要判断“满足某几种条件里的哪一个,就做对应的事”。比如要根据用户选的“星期几”,输出不同的提示:周一到周五要提醒“该上班啦”,周六周日说“好好休息”,法定节假日说“放假快乐”。

如果用if-else写,会是这样:

`js

let weekDay = 3; // 3代表周三(举例子)

if (weekDay === 1 || weekDay === 2 || weekDay === 3 || weekDay === 4 || weekDay ===5) {

console.log("该上班啦");

} else if (weekDay ===6 || weekDay ===7) {

console.log("好好休息");

} else {

console.log("放假快乐");

}

`

是不是有点绕?要是情况更多,比如加上12个月份、10个颜色选项,if-else堆成小山,自己看久了都懵。这时候switch就派上用场了,它能把“判断条件”和“对应操作”拆得清清楚楚,读起来像说话一样直白。

---

最基础的switch用法:像按按钮选操作

switch的核心逻辑是“先给一个要判断的值,再列出所有可能的情况,每种情况对应要做的事”,语法结构很固定,像一套模板:

`js

switch (要判断的值) {

case 情况1:

情况1要做的事;

break; // 关键:这个break别漏!

case 情况2:

情况2要做的事;

break;

// 还能加更多case

default:

以上情况都不满足时,做的事;

}

`

还是用刚才的星期几例子,换成switch写就清爽多了:

`js

let weekDay = 3;

switch (weekDay) {

case 1:

case 2:

case 3:

case 4:

case 5:

console.log("该上班啦");

break;

case 6:

case 7:

console.log("好好休息");

break;

default:

console.log("放假快乐");

}

`

你看,case后面直接写“可能的情况”,把同操作的情况放一块,一眼能看懂“周一到周五都要上班”,比if-else顺多了。

---

两个关键细节,别踩坑!

刚用switch的人最容易错在两个地方,记清楚就不会出问题:

第一个坑:break不能随便丢。刚才的例子里,每个case后面都有break,它的作用是“做完当前情况的事,就跳出switch,不用再检查后面的情况”。如果把break去掉,会发生啥?

比如删掉周三的break:

`js

let weekDay =3;

switch (weekDay) {

case 1:

console.log("周一");

case 3:

console.log("周三");

case 5:

console.log("周五");

break;

}

`

运行后会输出“周三”,还会输出后面的“周五”——因为没break,代码会“贯穿”所有后面的case,直到碰到break才停,这叫“穿透”,平时写代码大多不需要穿透,所以break必须加。

第二个坑:switch的判断是“严格相等”(===)。比如你判断的是数字3,如果case写的是字符串"3",哪怕内容一样,也不会匹配上。比如:

`js

let weekDay =3;

switch (weekDay) {

case "3":

console.log("匹配到啦");

break;

default:

console.log("没匹配到");

}

`

输出的是“没匹配到”,因为数字和字符串是不同类型,就像你说“3个苹果”和说“三个字的苹果”,完全不是一回事。

---

啥时候用switch,啥时候用if-else?

switch不是万能的,也不是所有情况都要用:如果判断的是“区间类条件”,比如“成绩≥90分是优秀,60-89是及格”,if-else更方便——switch只能判断“值等于某个具体值”,没法直接写case 成绩≥90这种条件。但如果是“判断多个具体值、同值对应同一操作”,比如根据月份判断季节、根据按钮类型判断要弹出的弹窗,switch会让代码更简洁,也更容易维护。

就像选外卖,点“快餐”“奶茶”“火锅”三个选项,用switch直接对应,比一堆“如果选快餐就点汉堡,如果选奶茶就点珍珠”清楚多了。

上一篇 Java 如何复制文件