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

JavaScript Unexpected end of input with a break

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

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

我收到一个错误:Uncaught SyntaxError: Unexpected end of input 就在脚本的末尾。发生这种情况是因为我试图使用 break 跳出循环。

当然这不是我正在处理的代码,它更复杂并且需要中断跳转。我知道在这种情况下 do while 循环或 for 循环会成功。这只是我显示错误的最小代码。

圆括号平衡,大括号平衡,为什么说不完整?

P.S。我也试过这个与函数完全相同的代码,在关闭函数的大括号上收到错误 Uncaught SyntaxError: Unexpected token }

do Javascript 中的语句需要相应的 while 表达式。

例如

  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+" ");
}
if (j=4) {
      break;
    }

应该是j==4