起因是看svelte代码,突然想到那个$:它不会是行标号吧?难道js支持行标号?
一搜还真有。
大致有这么几种用法
1 break 语句: 跳出指定的循环
outerloop:
for (var i = 0; i < 3; i++) {
innerloop:
for (var j = 0; j < 3; j++) {
if (i === 1 && j === 1) {
break outerloop; // 跳出外部循环
}
console.log('i=' + i + ', j=' + j);
}
}
嗯,确实比外层循环写个let变量判断简洁不少
continue语句: 标签可以与continue语句一起使用,用于跳过当前循环的剩余部分并继续下一次迭代。在多层嵌套循环中,可以通过标签和continue语句控制跳转到指定的位置。
outerloop:
for (var i = 0; i < 3; i++) {
innerloop:
for (var j = 0; j < 3; j++) {
if (j === 1) {
continue outerloop; // 跳过当前外部循环的剩余部分
}
console.log('i=' + i + ', j=' + j);
}
}
break语句: 在除了循环之外的代码块中,标签还可以与break语句一起使用,用于跳出带有指定标签的代码块。这样可以在多层嵌套的代码结构中更精确地控制流程。
mylabel:
{
console.log('Hello');
break mylabel; // 跳出带有指定标签的代码块
console.log('World'); // 不会被执行
}
没有goto语句,应该算是庆幸。
总的来说,属于没什么大用的语法,难怪写了几十年也没发现这个😂