學藝不精。。。原來js中的break,continue是可以帶標簽的


javascript大家所熟知中的for是一個循環體,循環體其中的break和continue也是大家都比較熟悉的功能,相信大家對它們的用法不會陌生,本文不是介紹其功能,本文假設你已經熟悉break和continue的語意和用法。

 

今天在研究某系統時發現其代碼有這樣一個結構(已簡化):

 1 var result = false;
 2 point:
 3 {
 4     var obj = { key: 1 };
 5     for (var key in obj) {
 6         // ...
 7         break point;
 8     }
 9     result = true;
10 }
11 alert(result);

咋看一下以為是代碼錯誤,甚至於Visual Studio對此代碼沒辦法進行正確的格式化。可是又仔細一看語意還是很清晰的,也就是從for循環內部break到指定的point這個位置,而且此系統不應該犯這樣的錯誤的。因為自己沒有這樣使用過,遂進行了一番測試,測試結果果然是自己學術不精啊。。。這是javascript既有的語法,break是可帶位置標簽的,查閱相關文檔發現continue一樣也是可以帶位置標簽的。

 

他們的的語法分別為:

break [label];

continue [label];

 

我們知道在循環體當中break只能跳出當前循環,而當break帶上了標簽,就能隨意跳到某位置,可輕松的跳出多重循環,此外switch中的break也是一樣可以這樣使用。

 

參考文檔:

https://developer.mozilla.org/en/JavaScript/Reference/Statements/break

http://www.w3school.com.cn/js/pro_js_statements_break_continue.asp

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM