为什么不与循环一起使用时JS Lables不起作用

时间:2018-11-12 13:49:44

标签: javascript html ecmascript-6 ecmascript-5

我在这里写了一个小的JS代码。哪个运行没有任何错误

repeat:
  while(true){
    console.log('Start');
    break repeat;
    console.log('End');
  }

但是当我不使用while语句时,程序将引发错误Undefined label repeat

repeat:
    console.log('Start');
    break repeat;
    console.log('End');

为什么程序会抛出该错误?标签仅用于循环吗?

2 个答案:

答案 0 :(得分:6)

基本上,它与代码blocks一起使用。而且,尽管没有任何要中断的块,但是代码会引发错误。

repeat: {
    console.log('Start');
    break repeat;
    console.log('End');
}

答案 1 :(得分:-1)

此外,“这种构造基本上是function getConfigDetails() { return new Promise(function(resolve, reject){ var ticker = setInterval(function(){ if ($rootScope.isconfigloaded) { //the other stuff clearInterval(ticker); resolve(); } }, 200); }); 的拖拽。”我希望看到用goto语句编写的逻辑,如下所示:

continue

我的观点是“它仍然是一个while (true) { console.log('start'); if (x == y) continue; console.log('foo'); if (q != z) continue; ... } 循环,正如我所说的那样,”它并不总是到达终点。当它没有到达终点时,它总是回到顶部。

while情况下,break语句是最常见的,并且实际上,其他任何读取您的代码的人都希望使用它。该逻辑一直运行到满足某些条件为止,这时它会“跳出循环”并转到其后的语句。

当您“ while (true)break一样时,您的逻辑变得更加难以理解和理解。这是一个非常重要的考虑因素。 “以一种通常期望的方式简单明了地编写。不要投掷曲线球。”