前言
在日常開發中我們經常使用到遞迴、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 能實現複雜的邏輯,但也容易出錯。注意標籤要使用描述性強的文字,而巢狀也不要太深。
以上就是本文的全部內容,希望給讀者帶來些許的幫助和進步,方便的話點個關注,小白的成長踩坑之路會持續更新一些工作中常見的問題和技術點。