在Javascript中标记while循环

在Javascript中标记while循环,javascript,statements,Javascript,Statements,我的困惑源于下面这个例子: myLoop : while (expression) { continue myLoop; } 以及一般标记语句的语法: identifier : statement 示例中的标签究竟是什么 这不是整个代码块: while (expression) statement 考虑一个单独的声明?或者whileexpression本身就是一个语句?或者,while本身就是一个语句 为什么不是全部: while (expression) { c

我的困惑源于下面这个例子:

myLoop : while (expression) {
    continue myLoop;
}
以及一般标记语句的语法:

identifier : statement
示例中的标签究竟是什么

这不是整个代码块:

while (expression) 
    statement
考虑一个单独的声明?或者whileexpression本身就是一个语句?或者,while本身就是一个语句

为什么不是全部:

while (expression) {
    continue myLoop;
} 

在myLoop下标记,而不仅仅是whileexpression。或者这种情况会发生吗?

被标记的不是一段代码,而是一行特定的代码。所以无论标签myLoop在哪里,编写continue myLoop就像说跳转到那个位置并继续执行

但实际上,在这个例子中:

myLoop : while (expression) {
    continue myLoop;
}
对的使用是完全多余的。你可以这样写,效果是一样的:

while (expression) {
    continue;
}

这是因为默认情况下,转到循环下一次迭代的开始处。

标记的不是代码块,而是特定的行。所以无论标签myLoop在哪里,编写continue myLoop就像说跳转到那个位置并继续执行

但实际上,在这个例子中:

myLoop : while (expression) {
    continue myLoop;
}
对的使用是完全多余的。你可以这样写,效果是一样的:

while (expression) {
    continue;
}

这是因为默认情况下,转到循环下一次迭代的开始。

我以前从未见过被标记的while循环,但根据这一点,被标记的是整个while循环

它的用途是打破一个特定的循环,方便使用循环中的循环,例如从链接中获取的示例

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

我以前从未见过被标记的while循环,但根据这一点,被标记的是整个while循环

它的用途是打破一个特定的循环,方便使用循环中的循环,例如从链接中获取的示例

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

此外,在本例中,while循环的处理方式类似于单个语句,即使它在其自身代码块中包含多个语句。此外,在本例中,while循环的处理方式类似于单个语句,即使它在其自身代码块中包含多个语句。