JavaScript带有中断的意外结束输入

问题描述 投票:0回答:2

使用这个非常简单的代码:

<body>
<script>
  var j;
  j=0;
  do {
    document.write("J="+j+" ");
    j++;
    if (j=4) {
      break;
    }
  }
</script>
</body>

我收到一个错误:Uncaught SyntaxError:在脚本结束时意外结束输入。这是因为我试图使用break从循环中跳出来。

当然这不是我正在研究的代码,这更复杂,需要突破。我知道在这种情况下,while循环或for循环会成功。这只是我显示错误的最小代码。

括号是平衡的,括号是平衡的,为什么说它不完整?

附:我也尝试了这个与函数相同的代码,在关闭函数的大括号上接收错误Uncaught SyntaxError:Unexpected token}。

javascript syntax-error break
2个回答
3
投票

Javascript中的do语句期望相应的while表达式。

EG

  var j;
  j=0;
  do {
    document.write("J="+j+" ");
    j++;
    if (j=4) {
      break;
    }
  } while (true);

另外值得注意的是,if (j=4)在JS中总是如此,你可能意味着===用于比较而不是=进行分配。 (正如评论中提到的Adriani6)

但是,如果这是您正在使用的完整示例,那么删除if条件并断开将更加清晰:

  var j;
  j=0;
  do {
    document.write("J="+j+" ");
    j++;
  } while (j !== 4);

甚至更容易阅读:

for (let j = 0; j < 4; j++) {
   document.write("J="+j+" ");
}

0
投票
if (j=4) {
      break;
    }

它应该是j == 4

© www.soinside.com 2019 - 2024. All rights reserved.