“的用例是什么?”;中断标识符“;用JavaScript?

“的用例是什么?”;中断标识符“;用JavaScript?,javascript,Javascript,规格 然后就开始了 程序包含带有可选标识符的break语句,其中标识符不出现在封闭(但不跨越函数边界)语句的标签集中 具有标识符的BreakStatement的计算如下: Return (break, empty, Identifier). 这到底是什么意思?标签是这样的: // ... mylabel: // ... 这可以作为语句放置在任何位置 当有多个嵌套的for循环时,中断/继续非常有用 其用法示例如下: var i, j; loop1: for (i = 0; i < 3

规格

然后就开始了

程序包含带有可选标识符的break语句,其中标识符不出现在封闭(但不跨越函数边界)语句的标签集中

具有标识符的BreakStatement的计算如下:

Return (break, empty, Identifier).

这到底是什么意思?

标签是这样的:

// ...
mylabel:
// ...
这可以作为语句放置在任何位置

当有多个嵌套的
for
循环时,
中断
/
继续
非常有用

其用法示例如下:

var i, j;

loop1:
for (i = 0; i < 3; i++) {      //The first for statement is labeled "loop1"
   loop2:
   for (j = 0; j < 3; j++) {   //The second for statement is labeled "loop2"
      if (i === 1 && j === 1) {
         continue loop1;
      }
      console.log("i = " + i + ", j = " + j);
   }
}

// Output is:
//   "i = 0, j = 0"
//   "i = 0, j = 1"
//   "i = 0, j = 2"
//   "i = 1, j = 0"
//   "i = 2, j = 0"
//   "i = 2, j = 1"
//   "i = 2, j = 2"
// Notice how it skips both "i = 1, j = 1" and "i = 1, j = 2"
vari,j;
循环1:
for(i=0;i<3;i++){//第一个for语句标记为“loop1”
循环2:
for(j=0;j<3;j++){//第二个for语句标记为“loop2”
如果(i==1&&j==1){
继续循环1;
}
console.log(“i=“+i+”,j=“+j”);
}
}
//输出为:
//“i=0,j=0”
//“i=0,j=1”
//“i=0,j=2”
//“i=1,j=0”
//“i=2,j=0”
//“i=2,j=1”
//“i=2,j=2”
//注意它如何跳过“i=1,j=1”和“i=1,j=2”
.

如果你仔细看,这里有一些例子

outer_block: {
    inner_block: {
        console.log('1');
        break outer_block; // breaks out of both inner_block and outer_block
        console.log(':-('); // skipped
    }
    console.log('2'); // skipped
}
如您所见,您可以使用一个标识符来
break
,该标识符选择链中比第一个直接父语句更高的标签

没有标识符的默认操作是

outer_block: {
    inner_block: {
        console.log('1');
        break; // breaks out of the inner_block only
        console.log(':-('); // skipped
    }
    console.log('2'); // still executed, does not break
}
断裂必须在标签内部,不能基于断裂在外部的压头断裂标签。

相关:
outer_block: {
    inner_block: {
        console.log('1');
        break; // breaks out of the inner_block only
        console.log(':-('); // skipped
    }
    console.log('2'); // still executed, does not break
}