[英]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.