流程控制語句javascript
switch 和 if 均可以相互轉換,switch 的性能更優於 if java
1. 條件判斷語句 if性能
在某條語句以前,使用條件判斷語句。spa
若是條件成立纔會執行 if 代碼塊 裏的語句,不成立,則跳過 if 代碼塊 裏的語句,而執行下面的語句。code
if 語句,只會有一個代碼塊被執行。。。有一個代碼塊被執行了,if 語句就結束了。blog
if(條件表達式1 && 條件表達式2)
{ 語句1; 語句2; }
if(條件表達式1 && 條件表達式2) { 語句1; 語句2; } else { 語句3; 語句4; }
if (條件表達式1 && 條件表達式2) { 語句1; 語句2; } else if (條件表達式3 && 條件表達式4) { 語句3; 語句4; } else { 語句5; 語句6; }
2. 條件分支語句ip
switch(條件表達式)
{
case 表達式1:
語句1;
語句2;
break;
case 表達式2:
語句3;
break;
case 表達式3:
語句4;
語句5;
語句6;
break;
default:
語句7;
break;
}
執行時,根據 條件表達式 的值與 case 的值依次進行全等比較,全等的則執行以後的除了 case 的全部語句。rem
若是遇到 break; 則立刻跳出 switch 語句塊。it
若是全部的 case 都是 false,則執行 default 後面的語句。console
switch
語句後面的表達式,與case
語句後面的表示式比較運行結果時,採用的是嚴格相等運算符(===
),而不是相等運算符(==
),這意味着比較時不會發生類型轉換。
var x = 1; switch (x) { case true: console.log('x 發生類型轉換'); break; default: console.log('x 沒有發生類型轉換'); } // x 沒有發生類型轉換
3. 循環語句
while(條件表達式) { 語句1; 語句2; }
只要條件表達式成立,就會一直執行代碼塊。
do { 語句1; 語句2; } while(條件表達式);
for(初始化表達式; 條件表達式; 遞增表達式) { 語句1; 語句2; }
break; 和 continue;
代碼塊
標籤 label
foo: { console.log(1); break foo; console.log('本行不會輸出'); } console.log(2);
top: for (var i = 0; i < 3; i++){ for (var j = 0; j < 3; j++){ if (i === 1 && j === 1) break top; console.log('i=' + i + ', j=' + j); } } // i=0, j=0 // i=0, j=1 // i=0, j=2 // i=1, j=0
continue
語句後面不使用標籤,則只能進入下一輪的內層循環。
top: for (var i = 0; i < 3; i++){ for (var j = 0; j < 3; j++){ if (i === 1 && j === 1) continue top; console.log('i=' + i + ', j=' + j); } } // i=0, j=0 // i=0, j=1 // i=0, j=2 // i=1, j=0 // i=2, j=0 // i=2, j=1 // i=2, j=2