原生js switch語句

1、咱們在流判斷的時候,咱們大多數的狀況我使用if  else 語句。可是對於一些大量的邏輯的判斷的時候,咱們不建議使用if elseif語句 這種語句的效率執行不高,由於他每一個expression 都須要進行計算判斷,而switch case語句,在效率上更比if語句更高javascript

其原理他自己根據生成的靜態表,經過索引進行匹配效率高於if語句。html

執行流程:java

switch (expression){express

case value1:spa

statementcode

breakhtm

case value2:blog

statement索引

breakip

.......

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>
相關文章
相關標籤/搜索