javascript中带标签中断和不带标签中断的区别是什么

javascript中带标签中断和不带标签中断的区别是什么,javascript,label,break,Javascript,Label,Break,var num=0; 对于(变量i=0;i

var num=0;
对于(变量i=0;i<10;i++){
对于(var j=0;j<10;j++){
如果(i==5&&j==5){
打破
}
num++;
}
}

console.log(num)
在没有标签的情况下使用时,只中断当前循环,在您的情况下,是最内层的循环。所以现在j=6,条件现在是错误的,循环会继续增加40次


放置标签时,break转到标签的“级别”,因此跳过两个for循环。

如果没有标签,
break
将从内部循环中断。使用标签可以停止嵌套循环的执行

参见示例:


在没有标签的情况下使用
break
会中断当前正在执行的最内部循环


break
与标签
foo
一起使用,可中断语句标签为
foo

:

break
语句包含一个可选的标签,允许程序从标签语句中分离出来。
break
语句需要嵌套在此带标签的语句中。带标签的语句可以是任何语句;它不必前面有循环语句


第一个只是打破你的“j”循环。在它中断之后,它将返回到“i”循环,并将“i”增加到6。一旦“i”为6,它将返回到“j”循环,并且不再满足if条件。所以它继续加上“num”。

中断只在内部for循环中给出。 因此,当i=j=5时,它只中断内部for循环。 但是外环继续旋转10次。
因此,当i=j=5时,循环将只旋转5次,在其他情况下,它将旋转10次。

当您使用无标签中断时,它只会中断内部循环,即(i=5j=6),(i=5j=7),(i=5j=8),(i=5j=9),循环再次从(i=6j=0)开始到(i=9j=9),并开始计数(num++),这就是为什么它将结果显示为95

bt当您使用带标签的break时,即break outermost,它从循环标签中断开为outermost(即outer loop),这就是为什么它将输出设为55