这是JavaScript上的对象还是属性



我的问题是关于以下代码:

let iterations = 0; 
top: for (let i = 0; i < 5; i++) { 
for (let j = 0; j < 5; j++) { 
iterations++; 
if (i === 2 && j === 2) { 
break top; 
} 
} 
} 
console.log(iterations); // OUTPUTS: 13

我不确定这是一个对象、一个函数还是什么(我说的是top:(,我也不知道OUTPUT是13,我知道它有2次迭代,但我的问题是,循环中的条件是否成立?还是不?为什么?

更新:这是一个标签。。。抱歉我的无知。

谢谢你和祝福。

top:是外循环的名称,用于内部中断,以定义要中断的循环。

要知道它是如何工作的,请添加另一个输出:

let iterations = 0; 
top: for (let i = 0; i < 5; i++) { 
for (let j = 0; j < 5; j++) { 
console.log(i, j)
iterations++; 
if (i === 2 && j === 2) { 
break top; 
} 
} 
} 
console.log(iterations);

现在你会得到:

0 0
0 1
0 2
0 3
0 4
1 0
1 1
1 2
1 3
1 4
2 0
2 1
2 2

这正好是13次迭代。内循环将两次达到其最大值,直到外循环达到2。

这两者都不是标签。来自MDN文档:

带标签的语句可以与break或continue语句一起使用。它是在语句前面加上一个标识符,你可以参考这个标识符

最新更新