gpt4 book ai didi

javascript - 这个 : main:for(. ..){...} 在做什么?

转载 作者:行者123 更新时间:2023-11-29 17:32:01 24 4
gpt4 key购买 nike

我拉起了 NWmatcher source code一些轻松的晨读,并注意到我以前从未在 javascript 中见过的这段奇怪的代码:

main:for(/*irrelevant loop stuff*/){/*...*/}

这段代码可以在第 441 行的 compileGroup 方法中找到 (nwmatcher-1.1.1)

return new Function('c,s,d,h',
'var k,e,r,n,C,N,T,X=0,x=0;main:for(k=0,r=[];e=N=c[k];k++){' +
SKIP_COMMENTS + source +
'}return r;'
);

现在我自己弄明白了 main: 是做什么的。如果你有一个循环中的循环并想跳到外循环的下一次迭代(不完成内循环或外循环),你可以执行 continue main。示例:

// This is obviously not the optimal way to find primes...
function getPrimes(max) {
var primes = [2], //seed
sqrt = Math.sqrt,
i = 3, j, s;

outer: for (; i <= max; s = sqrt(i += 2)) {
j = 3;
while (j <= s) {
if (i % j === 0) {
// if we get here j += 2 and primes.push(i) are
// not executed for the current iteration of i
continue outer;
}
j += 2;
}
primes.push(i);
}
return primes;
}

这叫什么?
有没有不支持的浏览器?
除了 continue 之外,它还有其他用途吗?

最佳答案

这是 labeled continue .您也可以使用 labeled break .它是 ECMAScript 3 以来的标准。它的工作方式基本相同 in Java .

关于javascript - 这个 : main:for(. ..){...} 在做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3046588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com