js--標籤語法的使用

丶Serendipity丶發表於2021-10-17

 

前言

  在日常開發中我們經常使用到遞迴、break、continue、return等語句改變程式執行的位置,其實,在 JavaScript 中還提供了標籤語句,用於標記指定的程式碼塊,便於跳轉到指定的位置。本文來記錄一下標籤語句的使用方法。

正文

  1.標籤語句介紹

  標籤語句用於給語句加標籤,標籤可以與變數重名,它是一個獨立的語法元素(既不是變數,也不是型別),其作用是標識”標籤化語句(labeled statement)”相當於定位符,用於跳轉到程式的任意位置,語法如下:
  label: statement

例如:

    hello:console.log("hello")

  標籤語句可以改變程式的執行流程,類似於break,continue和return。其中break和continue可以和標籤一起使用。

  2.標籤語句使用

  (1)標籤語句和 break 配合使用,跳出特定的迴圈
    let num = 0;
    mylabel:
    for (let i = 0; i < 10; i++) {
      for (let j = 0; j < 10; j++) {
        if (i == 5 && j == 5) {
          break mylabel;
        }
        num++;
      }
    }
    console.log(num); // 55
  在這個例子中, outermost 標籤標識的是第一個 for 語句。正常情況下,每個迴圈執行 10 次,意味著 num++ 語句會執行 100 次,而迴圈結束時 console.log 的結果應該是 100。但是, break 語句帶來了一個變數,即要退出到的標籤。新增標籤不僅讓 break 退出(使用變數 j 的)內部迴圈,也會退出(使用變數 i 的)外部迴圈。當執行到 i 和 j 都等於 5時,迴圈停止執行,此時 num 的值是 55。
  (2)標籤語句和 continue 配合使用
    let num = 0;
    mylabel:
    for (let i = 0; i < 10; i++) {
      for (let j = 0; j < 10; j++) {
        if (i == 5 && j == 5) {
          continue mylabel;
        }
        num++;
      }
    }
    console.log(num); // 95
  continue 語句會強制迴圈繼續執行,但不是繼續執行內部迴圈,而是繼續執行外部迴圈。當 i 和 j 都等於 5 時,會執行 continue ,跳到外部迴圈繼續執行,從而導致內部迴圈少執行 5 次,結果 num 等於 95。

寫在最後

  組合使用標籤語句和 break 、 continue 能實現複雜的邏輯,但也容易出錯。注意標籤要使用描述性強的文字,而巢狀也不要太深。

  以上就是本文的全部內容,希望給讀者帶來些許的幫助和進步,方便的話點個關注,小白的成長踩坑之路會持續更新一些工作中常見的問題和技術點。

 

 

相關文章