Skip to content

switch 是一个不常用的语句,了解即可,我们基本不用。

js
//语法
switch(表达式){
	case 数据1:
		代码块
	case 数据2:
		代码块
	...
	default:
		代码块
}

switch 的功能为,对表达式进行求值,依次和 case 后面的数据进行严格相等(三等号)的比较,如果和某个 case 相等,则执行该 case 之后的所有代码块。如果没有任何一个 case 与表达式的值严格相等,那么运行 default。

default 可以不写

我们写一个 demo

js
var a = 20;
switch(a){
	case 10:
		console.log(10);
	case 20:
		console.log(20);
	case 30:
		console.log(30);
	default:
		console.log("default");
}

输出结果如下

![Pasted image 20240325215811](/notes-assets/02.JavaScript/3.流程控制/assets/Pasted image 20240325215811.png)

该语句会先将 a 的值求出来,求出来是 20,比较第一个 case,发现 20 和 10 并不严格相等,于是比较第二个 case,发现第二个 case 能匹配上,于是执行第二个 case 后面的所有代码块,包括对 20,30 和 default 的输出。

我们发现这玩意儿好像会向下漏,但这往往不是我们要达到的效果,我们希望匹配到 20 就只输出 20,匹配到 30 就只输出 30,这也可以做到,我们可以在每个代码块下面添加 break 关键字即可。

js
var a = 20;
switch(a){
	case 10:
		console.log(10);
		break;
	case 20:
		console.log(20);
		break;
	case 30:
		console.log(30);
		break;
	default:
		console.log("default");
}

此时就只会输出 20。break 关键字可以用于跳出 switch 语句,当匹配到 20 之后,执行第二个 case 后面所有的代码块,先执行 console.log(20); 然后执行到 break,由于 break 可以跳出 switch 语句,所以就不会再继续往后执行。

以笔记为镜,可以知得失