在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循环的处理方式类似于单个语句,即使它在其自身代码块中包含多个语句。