原生js witch语句
一、我们在流判断的时候,我们大多数的情况我使用if else 语句。但是对于一些大量的逻辑的判断的时候,我们不建议使用if elseif语句 这种语句的效率执行不高,因为他每个expression 都需要进行计算判断,而switch case语句,在效率上更比if语句更高
其原理他本身根据生成的静态表,通过索引进行匹配效率高于if语句。
执行流程:
switch (expression){
case value1:
statement
break
case value2:
statement
break
.......
default:
statement
}
首先执行switch内的expression,计算值,然后进行case进行判断。匹配到case,执行对应的statement 如果有break,则跳出switch语句,如果没有则执行剩下的case语句,最后执行default 内的语句。如果带有break的,当匹配执行完case的时候,不会执行default 语句。如果
没有匹配到case最后执行default语句。
需要注意:switch语句的case匹配是全等匹配。不存在类型转换这点不同于if语句。
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title></title>
5 </head>
6 <body>
7 <script type="text/javascript">
8 var date=new Date();
9 switch(date.getDate()){
10 case 1:
11 alert(1);
12 case 2:
13 alert(2);
14 case 3:
15 alert(3);
16 case 4:
17 alert(4)
18 case 5:
19 alert(5)
20 default:
21 alert('default')
22 }
23 </script>
24 </body>
25 </html>
如上switch语句,如果没有break的语句。在执行完的匹配的执行语句的时候,还会执行default语句。
加上break则匹配到case语句之后,不会执行default语句。此时default语句相当于if中的else部分。
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title></title>
5 </head>
6 <body>
7 <script type="text/javascript">
8 var date=new Date();
9 switch(date.getDate()){
10 case 1:
11 alert(1);
12 break;
13 case 2:
14 alert(2);
15 break;
16 case 3:
17 alert(3);
18 break;
19 case 4:
20 alert(4);
21 break;
22 case 5:
23 alert(5);
24 break;
25 default:
26 alert('default')
27 }
28 </script>
29 </body>
30 </html>
一般的情况下 我们会用switch做一些值 的判断,当然我们可以进行逻辑的判断:
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title></title>
5 </head>
6 <body>
7 <script type="text/javascript">
8 var num=24;
9 switch(true){
10 case num>24:
11 alert("大于24!");
12 break;
13 case num<24&&num>20:
14 alert("大约20,小于24!");
15 break;
16 case num===24:
17 alert("等于24");
18 break;
19 default:
20 alert("判断不了")
21 }
22 </script>
23 </body>
24 </html>


浙公网安备 33010602011771号