码迷,mamicode.com
首页 > Web开发 > 详细

原生js switch语句

时间:2018-10-05 17:29:14      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:静态   ===   等于   new   expr   res   大于   state   if语句   

一、我们在流判断的时候,我们大多数的情况我使用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>

 

原生js switch语句

标签:静态   ===   等于   new   expr   res   大于   state   if语句   

原文地址:https://www.cnblogs.com/evilliu/p/9745096.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!