break
试一试
语法
描述
示例
while 循环中的 break
以下函数包含一个 break
语句,当 i
为 3 时终止while
循环,然后返回 3 * x
的值。
js
function testBreak(x) {
let i = 0;
while (i < 6) {
if (i === 3) {
break;
}
i += 1;
}
return i * x;
}
switch 语句中的 break
以下代码包含一个 break
语句,当匹配某个 case 并运行相应的代码时,终止switch
语句。
js
const food = "sushi";
switch (food) {
case "sushi":
console.log("Sushi is originally from Japan.");
break;
case "pizza":
console.log("Pizza is originally from Italy.");
break;
default:
console.log("I have never heard of that dish.");
break;
}
带标签的块中的 break
以下代码使用带有标签的块的 break
语句。通过使用 break outerBlock
,控制权将转移到标记为 outerBlock
的块语句的末尾。
js
outerBlock: {
innerBlock: {
console.log("1");
break outerBlock; // breaks out of both innerBlock and outerBlock
console.log(":-("); // skipped
}
console.log("2"); // skipped
}
非语法 break 语句
break
语句必须嵌套在其引用的任何标签内。以下代码也使用带有标签的块的 break
语句,但会生成语法错误,因为其 break
语句引用了 block2
,但它未嵌套在 block2
内。
js
block1: {
console.log("1");
break block2; // SyntaxError: label not found
}
block2: {
console.log("2");
}
以下代码示例也生成了语法错误,这些代码示例在嵌套在循环中的函数内使用 break
语句,或者 break
语句旨在跳出的带标签的块内使用 break
语句。
js
function testBreak(x) {
let i = 0;
while (i < 6) {
if (i === 3) {
(() => {
break;
})();
}
i += 1;
}
return i * x;
}
testBreak(1); // SyntaxError: Illegal break statement
js
block1: {
console.log("1");
(() => {
break block1; // SyntaxError: Undefined label 'block1'
})();
}
规范
规范 |
---|
ECMAScript 语言规范 # sec-break-statement |
浏览器兼容性
BCD 表格仅在浏览器中加载