繁体   English   中英

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:脚本结尾处的输入意外结束 发生这种情况是因为我试图使用break从循环中跳出。

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

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

PS我也尝试过将此代码与函数完全相同,在关闭该函数的大括号上收到错误Uncaught SyntaxError:Unexpected token}

Javascript中的do语句需要一个对应的while表达式。

例如

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

同样值得注意的是, if (j=4)在JS中始终为true,则可能是===用于比较,而不是=用于赋值。 (如评论中提到的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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM