1. 程式人生 > 實用技巧 >Javascript高階之流控制語句

Javascript高階之流控制語句

流控制語句

if 語句

  • 語法
    • if(condition) statement1 else statement2

do-while 語句

  • 語法
do{
  statement
}while(expression);

while 語句

  • 語法
    • while(expression) statement

for 語句

  • 語法

    • for(初始化; 條件表示式; 迴圈後表示式) statement
  • 概念

    • 使用let宣告迭代器變數
    • 初始化,條件表示式,迴圈後表示式都不是必需的
    • 如果只包含條件表示式,那麼for迴圈就變成了while迴圈
// 無窮迴圈
for(;;){
  doSomething();
}
// while迴圈
for(;條件表示式;){
  doSomething();
}

for-in 語句

  • 語法
    • for(property in expression) statement
// 迴圈顯示BOM物件window的所有屬性
for(const proname in window){
    console.log(proname);
}
  • 概念
    • for-in語句是一種嚴格的迭代語句,用於列舉物件中的非符號鍵屬性
    • for-in語句返回物件屬性的順序因瀏覽器而異
    • 如果for-in迴圈要迭代的變數是null或undefined,則不執行迴圈體

for-of 語句

  • 語法
    • for(property of expression) statement
for(const el of [2, 4, 6, 8, 10]){
    console.log(el);
}
  • 概念
    • for-of語句是一種嚴格的迭代語句,用於遍歷可迭代物件的元素
    • for-of迴圈會按照可迭代物件的next()方法產生值的順序迭代元素
    • 如果嘗試迭代的變數不支援迭代,則for-of語句會丟擲錯誤

標籤語句

  • 語法

    • label:statement
  • 概念

    • 標籤語句用於給語句加標籤
    • 標籤語句的典型應用場景是巢狀迴圈

break 和 continue 語句

  • 概念
    • break 和 continue 語句為執行迴圈程式碼提供了更嚴格的控制手段
    • break語句用於立即退出迴圈,強制執行迴圈後的下一條語句
    • continue語句用於立即退出迴圈,但會再次從迴圈頂部開始執行
    • break和continue都可以與標籤語句一起使用,返回程式碼中特定的位置
let num= 0;
outermost:
for(let i=0; i<10; i++){
    for(let j=0; j<10; j++){
        if(i==5&&j==5){
            break;
        }
        num++;
    }
}
console.log(num);   // 95
let num= 0;
outermost:
for(let i=0; i<10; i++){
    for(let j=0; j<10; j++){
        if(i==5&&j==5){
            break outermost;
        }
        num++;
    }
}
console.log(num);   // 55
let num= 0;
outermost:
for(let i=0; i<10; i++){
    for(let j=0; j<10; j++){
        if(i==5&&j==5){
          continue;
        }
        num++;
    }
}
console.log(num);   // 99
let num= 0;
outermost:
for(let i=0; i<10; i++){
    for(let j=0; j<10; j++){
        if(i==5&&j==5){
          continue outermost;
        }
        num++;
    }
}
console.log(num);   // 95

with 語句

  • 語法

    • with (expression) statement;
  • 概念

    • with語句的用途是將程式碼作用域設定為特定的物件
    • 使用with語句的主要場景是針對一個物件反覆操作
    • 不推薦使用
let qs= location.search.substring(1);
let hostName= location.hostname;
let url= location.href;
// 等價於
with(location){
  let qs= search.substring(1);
  let hostName= hostname;
  let url= href;
}

switch 語句

  • 語法
switch(expression){
  case value1:
    statement
    break;
  case value2:
    statement
    break;
  case value3:
    statement
    break;
  default:
    statement
}
  • 概念
    • switch語句可以用於所有資料型別
    • 條件的值不需要是常量,也可以是變數和表示式
switch('你好 中國'){
  case '你好'+' 中國':
    console.log('success');
    break;
  default:
    console.log('fail');
}
let num= 25;
switch(true){
  case num<0:
    console.log('小於0');
    break;
  case num>0:
    console.log('大於0');
    break;
  default:
    console.log('等於0');
}