javascript中关于break,continue的特殊用法与介绍

  今天在研究某系统时发现其代码有这样一个结构(已简化):

  

复制代码 代码如下:

  var result = false;

  point:

  {

  var obj = { key: 1 };

  for (var key in obj) {

  // ...

  break point;

  }

  result = true;

  }

  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.glzy8.com/w3school/js/pro_js_statements_break_continue.htm