2013-03-25 65 views
-3

這樣做是否有好處,是否會導致可讀性問題?可以在javascript中使用標籤中斷嗎?

+0

爲什麼投反對票?這個問題有什麼不對嗎? – ripu1581 2013-03-25 04:21:36

+0

(很可能是因爲這種問題不符合'問某個問題,得到一個具體答案'的SO格式。問關於模糊的一般問題的問題傾向於被低估並關閉。) – 2013-03-25 04:24:37

+0

「在JavaScript中打破標籤會導致可讀性問題?「一個模糊的問題? – ripu1581 2013-03-25 04:26:51

回答

4

標籤通常在JavaScript中用於從外部循環中斷開。例如:

while (true) { 
    while (true) { 
     if (someCondition) break; 
    } 
} 

在這個程序中你只能從break內循環。外部循環將無限循環。但有時候,您可能希望從外部循環而不是內部循環中斷開。您可以使用標籤用於此目的:

loop: while (true) { 
    while (true) { 
     if (someCondition) break loop; 
    } 
} 

話雖這麼說,如果你有很多的嵌套循環或使用標籤確實會有幫助,代碼的可讀性,即使它實際上可能沒有影響節目本身切換的情況下即可。

就拿代碼在這個問題上,例如:https://codereview.stackexchange.com/q/14532/15640

在這裏,我們有一個開關的情況下在for循環,雖然它使用我們永遠需要突破的for循環標記環路和開關的情況下可能幫助一些人。對於其他人來說,這只是一種分心。

最後歸結爲您的編程風格。初學者通常喜歡標註所有內容。更多的經驗程序員發現太多的評論和標籤煩人。

Steve Yegge實際上寫了一篇關於此的完整博客文章。你可能會發現它很有趣:無意見http://steve-yegge.blogspot.in/2008/02/portrait-of-n00b.html

嘗試編碼:http://www.codinghorror.com/blog/2008/07/coding-without-comments.html

4

雖然我不相信太多的絕對在編碼,我會說,我很少會在Javascript中使用標籤。

事實上,我不相信我曾經用過它們的所有語言。

感謝給予強有力的結構,for ...for ... inwhiledo ... whileif ... else而要做到早期return幾乎任何你需要一個標籤可以在一個更清潔的結構寫的能力。

+0

感謝@jeremy爲您提供意見。是否有任何研究可以在線獲得,並解釋了爲什麼它應該很少使用中斷標籤? – ripu1581 2013-03-25 04:18:20

+0

沒有人知道 - 但是如果你學習常規控制結構,你就會明白你真的不需要標籤,如果你最終得到了一些不能簡化的塊,請尋求特定的幫助。 – 2013-03-25 04:23:36

2

我很難考慮一個需要嵌套循環的時間,並且需要在內部打破外部名稱,而不是外部循環底部的一個值的簡單檢查,決定是否繼續......

通常情況下,該結構將比break third_from_outer_loop;continue loop_that_is_two_loops_higher更容易遵循。

如果您已經準備好打破最內層的最外層循環,那麼爲什麼不早點回來呢?

相關問題