2011-05-20 64 views
20

我:意外的 '繼續'

while (i < l) { 
    if (one === two) { continue; } 
    i++; 
} 

但是JSLint的說:在行

問題1個字符20:意外的 '繼續'。

if (one === two) { continue; } 

我都做什麼錯誤?我的代碼真的應該是

+3

我最初被教導要避免使用'continue'這種控制流。我已經決定這是一個糟糕的建議,我認爲這是一個更好的JSLint選項。我認爲**不*使用它掩蓋意圖。如果你像你一樣使用「繼續」,它告訴我這是一個需要避免的保護條件。否則,您可以將邏輯反轉並嵌套在一個if下執行的所有內容。這隻會在代碼中增加額外的大括號和縮進噪音。 – Tod 2013-04-16 19:46:51

+0

另請參見:http://stackoverflow.com/questions/16613790/jslint-error-expected-ignore-and-instead-saw-ex – 2015-01-16 00:35:31

回答

23

the JSLint docs

continue聲明

避免使用continue語句。它往往掩蓋了該功能的控制流程。

如果要符合該JSLint的遵循慣例所以把它拿出來完全。

+6

+1這是JSLint的一個稍微改變,它曾經允許之前繼續。現在有一個選項繼續:正確以容忍使用繼續。 – 2011-05-20 12:23:44

+0

用什麼來代替繼續?沒有返回 – asifg 2011-05-20 12:36:52

+2

我最近更新了幾個項目以符合這個新的限制:通常,您可以將剩餘的代碼放在循環中,如果條件相反,則返回。在我們的例子中,這種影響相當有限,但我傾向於發現替代版本繼續使用更具可讀性,並考慮添加continue:對我的JSLint配置保持原樣。 – 2011-05-20 12:44:37

10

什麼JSLint的實際上是嘗試要說的是反轉,如果這樣你就可以消除繼續:

while (i < 1) { 
    if (one !== two) { 
     i += 1; 
    } 
} 

此外,不要使用「我++」,而是用「I + = 1」,如果你想堅持JSLint的嚴格指導。

希望這會有所幫助:)