詳解Javascript基礎之迴圈
目錄
- 迴圈
- for
- for-in
- for-of
- while
- do-while
- 跳出迴圈
- 總結
迴圈
for
迴圈是任何一門語言都會有個命令,用於反覆執行某段程式碼。
例如,迴圈程式碼塊5次:
for (let i = 0; i < 5dFSMmEwg; i++) {
let text = `當前數字為${i}`
console.log(text)
}
// 輸出結果:
當前數字為0
當前數字為1
當前數字為2
當前數字為3
當前數字為4
此例中,let i = 0是宣告迴圈的計次變數,i < 5是迴圈終止條件,i++是計次變數更新步長,{}內的所有程式碼為迴圈體內程式碼塊。
具體流程是:計次變數進行終止條件判斷運算,如果結果為true,則迴圈體執行,結束後進行步長更新運算,從而得到新的結果再次參與判斷;如果結果為false,則立刻終止迴圈;
所以想要控制迴圈次數,可以通常改變判斷條件實現,如果迴圈條件永遠為true,則就是一個死迴圈。
for-in
for-in迴圈是一種特殊迴圈,可用於迴圈物件或陣列(通常迴圈陣列,使用for-of)
let o = { name: 'dapiaoliang',age: 18,sex: 'woman' } // 將物件內的所有鍵值對迴圈輸出,此時可以使用for-in for (let key in o) { let text = `當前屬性名:${key},值:${o[key]}` }
// 結果(這種迴圈輸出順序可能會不一樣,但數量不變)
當前屬性名:name,值:dapiaoliahttp://www.cppcns.comng
當前屬性名:age,值:18
當前屬性名:sex,值:woman
由此可見,for-in 用於迴圈物件內所有的鍵值對,具體輸出順序可能會發生變化,但是每個鍵值對都會被迴圈一次。
for-of
for-of時一種專門用於迴圈陣列或類似陣列結構(Iterator介面)的迴圈命令
let arr = ["dapiaoliang",18,'woman'] for (let value of arr) { let text = `當前值是:${value}` console.log(text) }
// 結果
當前值是:dapiaoliang
當前值是:18
當前值是:woman
類似for-in,可直接迴圈陣列的每一項資料
while
while是for的一個變種。(不常用)
while (條件) { 迴圈體 }
當條件為true,迴圈體就會執行,這種迴圈沒有計次變數,不需要更新步長。所以條件通常需要是一個可變引數,如果不是可變引數,就需要在迴圈體內,有明確的終止條件
do-while
do-while是一種特殊的while迴圈(不常用)
do { 迴圈體 }while(條件)
當前數字為0
當前數字為1
當前數字為2
當前數字為4
看起來是將while的條件和迴圈體交換了位置,所以這種迴圈體,在第一次時,是不需要進行判斷條件就會執行,執http://www.cppcns.com行結束後,再進行判斷,判斷結果決定下一次是否會迴圈
所以,do-while的條件是決定下一次是否迴圈,而第一次永遠都會執行,所以可以理解為至少執行一次的while迴圈
跳出迴圈
如果在迴圈體內由於某些原因,需要在程式碼塊內跳出迴圈,可以使用對應的關鍵字。
break用於永久終止此迴圈,continue用於終止當前這次迴圈(立刻進入下一次)
例如,跳過i = 3時情況
for (let i = 0; i < 5; i++) { if (i === 3) { continue } let text = `當前數字為${i}` console.log(text) }
上述例子,在i=3時,迴圈體內判斷為真,執行continue,那麼此次後續兩行程式碼不會執行,會立刻進入下一次迴圈。
for (let i = 0; i < 5; i++) { if (i === 3) {dFSMmEwg break } let text = `當前數字為${i}` console.log(text) }
當前數字為0
當前數字為1
當前數字為2
此時判斷內是break,那麼當i=3時,執行了break,那麼後續所有次數的迴圈都不會執行。break會把整個迴圈全部關閉。
總結
本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注我們的更多內容!