2012-06-26 23 views
2

我的困惑源於標籤的語句:標記,而在Javascript中環路從這個例子

myLoop : while (expression) { 
    continue myLoop; 
} 

和一般的標記語句的語法:

identifier : statement 

究竟是被標記的例子是什麼?

不是整個代碼塊:

while (expression) 
    statement 

視爲一個單獨的語句?或者是while(expression)本身就是一個聲明?或者是while本身的聲明?

爲什麼不是全:

myLoop下標
while (expression) { 
    continue myLoop; 
} 

並不僅僅是while(expression)。或者是甚至發生?

回答

2

什麼是被標記的不是代碼塊,它只是一個特定的行。所以無論你的標籤myLoop是,寫繼續myLoop就像是說「跳到那個地方,繼續執行」。

但實際上,在這個例子中:

myLoop : while (expression) { 
    continue myLoop; 
} 

使用該label是完全多餘的。您可以按如下方式寫出來,效果是相同的:

while (expression) { 
    continue; 
} 

這是因爲continue默認方式,進入循環的下一次迭代的開始。

+0

此外,一個循環(在這種情況下''while')就像一個單獨的語句,即使它本身包含多個語句(代碼塊)。 –

2

我以前從未見過標記while循環,但是根據這個http://james.padolsey.com/javascript/looping-in-javascript/整個while循環被標記。

它的用途是打破特定的循環,方便地使用例如循環迴路,例如, (示例取自鏈接)

myOuterLoop : while (condition) { 
myInnerLoop : while (condition) { 
    if (whatever) { 
     break myOuterLoop; 
    } 
    if (whatever2) { 
     break; // Same as 'break myInnerLoop;' 
    } 
} 
} 
相關問題