JavaScript 中的 for..of 循環

for...of 循環是我在 JavaScript 中喜歡使用的循環方式。 它結合了 forEach 循環的簡潔性和中斷的能力。 語法如下: const list = ['a', 'b', 'c'] for (const item of list) { console.log(item) } 您可以使用 break 在任何時間點中斷循環: const list = ['a', 'b', 'c'] for (const item of list) { console.log(item) if (item === 'b') break } 您可以使用 continue 跳過一次迭代: const list = ['a', 'b', 'c'] for (const item of list) { if (item === 'b') continue console.log(item) } 您可以使用 entries() 獲取迭代的索引: const list = ['a', 'b', 'c'] for (const [index, value] of list....

Javascript中有哪些方法可以跳出循環?

以下是一個for循環的範例: const list = ['a', 'b', 'c'] for (let i = 0; i < list.length; i++) { } 我們可以使用break關鍵字在任何時候跳出循環: const list = ['a', 'b', 'c'] for (let i = 0; i < list.length; i++) { if (list[i] === 'b') break console.log(list[i]) } break也適用於for..of循環: const list = ['a', 'b', 'c'] for (const item of list) { if (item === 'b') break console.log(item) } 以及while循環: const list = ['a', 'b', 'c'] let i = 0 while (i < list....

在 JavaScript 中如何在循環中使用 await

下面是如何使用 for..of 循環來迭代一個數組並在循環內部使用 await: const fun = (prop) => { return new Promise(resolve => { setTimeout(() => resolve(`done ${prop}`), 1000); }) } const go = async () => { const list = [1, 2, 3] for (const prop of list) { console.log(prop) console.log(await fun(prop)) } console.log('done all') } go() 需要將循環放置在一個 async 函數中,然後才能使用 await,循環會停止迭代,直到等待的 Promise 解決為止。 您也可以使用 for..in 循環來迭代對象: const fun = (prop) => { return new Promise(resolve => { setTimeout(() => resolve(`done ${prop}`), 1000); }) } const go = async () => { const obj = { a: 1, b: 2, c: 3 }; for (const prop in obj) { console....

如何調試 JavaScript 代碼

一個關於如何使用調試來解決任何 JavaScript 問題的教程 調試是一個很好的技能,它可以幫助你解決 JavaScript 代碼中的每個問題。 每天早上我們起床,吃美味的早餐,坐在電腦前寫完美的代碼,這個夢想是理想的,不是嗎?但這只是一個夢想而已。 無論你有多好,無法寫出沒有缺陷的代碼。代碼總是有缺陷的,這是它的定義。 當你開始寫代碼時,你可能沒有見過或預料到錯誤。錯誤可能只有在你將程序發佈給用戶之後才會被發現,這是最糟糕的情況。 錯誤可能由你自己在測試程序時發現,甚至可能在某些事情正常運作時就突然出現故障,只因為你改變了一行代碼。 這些被稱為回歸錯誤。 作為開發人員,錯誤是我們日常工作的一部分,但我們的工作是盡可能地將它們減少到最低。 當你知道有錯誤時,你如何解決它呢? 嗯,最難的部分始終是確定錯誤發生在哪裡。 然後,第二個最困難的部分是找出為什麼會發生這個錯誤。 一旦你知道了上述所有問題的答案,解決錯誤通常就很容易了。 通常我們可以做兩件事來解決錯誤。 一種技術是非常基本的,涉及嘗試找出狀態(變量的內容)和程序流程的值,並將這些變量打印到日誌或程序的輸出中。 找出錯誤可能出現的地方 調試是一種對程序員活動非常核心的技能。 有時候我們盡力工作,但程序卻不能正常工作,例如,它崩潰了,只是運行得很慢,或者它打印了錯誤信息。 當你寫的程序不像你預期的那樣運行時,你會怎麼做? 你開始調試它。 第一步始終是觀察發生了什麼,並嘗試確定問題來自哪裡。 它是環境中的問題嗎? 它是你給程序的輸入中的問題嗎? 它是由於內存使用過多而導致的一次性崩潰嗎? 還是每次運行它都會發生? 這些都是在解決問題時開始朝著正確方向前進的重要信息。 一旦你對錯誤的來源有了一些想法,你就可以開始檢查該特定程式碼的部分了。 最簡單的調試方式,至少在工具方面而言,是讀出你所寫的代碼。大聲讀出來。 如果你讀的是一個字符串或一個數字,那麼聽起來沒有任何魔力。 然而,有時我們可以通過這種方式發現問題。 在這一步之後,就是使用一些工具的時候了。 你第一次接觸 alert() 和 console.log() 如果閱讀代碼對你來說毫無意義,那麼下一個合乎邏輯的步驟就是開始在代碼中添加幾行代碼,以幫助你找到問題所在。 在 JavaScript 前端代碼中,你通常會使用 alert() 和 console.log()。 考慮以下代碼行: const a = calculateA() const b = calculateB() const result = a + b 出於某種原因,我們不知道代碼的最終結果計算不正確,所以我們在計算結果之前添加 alert(a) 和 alert(b)。 當瀏覽器執行代碼時,它會打開兩個警告對話框: const a = calculateA() const b = calculateB() alert(a) alert(b) const result = a + b 如果你將 alert() 傳遞的是一個字符串或一個數字,這種方法是行得通的。...

逐一迴圈:`for-in`

本教學屬於 Swift 系列 for-in 迴圈可用於指定次數的迭代,使用範圍運算子: for index in 0...3 { // 4 次迭代,`index` 為:0, 1, 2, 3 } 您也可以迭代陣列或集合元素: let list = ["a", "b", "c"] for item in list { // `item` 包含元素值 } 以及迭代字典元素: let list = ["a": 1, "b": 2, "c": 2] for (key, value) in list { // `key` 包含項目鍵 // `value` 包含項目值 }