break
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Оператор break завершает текущий цикл или оператор switch и передает управление программой оператору, следующему за завершенным оператором. Он также может использоваться для перехода за помеченный оператор при использовании внутри этого помеченного оператора.
Попробуйте
let i = 0;
while (i < 6) {
if (i === 3) {
break;
}
i += 1;
}
console.log(i);
// Expected output: 3
Синтаксис
break; break label;
-
labelНеобязательно - Идентификатор, связанный с меткой оператора, к которому нужно перейти. Если оператор
breakне вложен в цикл илиswitch, то идентификатор метки обязателен.
Описание
Когда встречается break;, программа выходит из самого внутреннего switch или циклического оператора и продолжает выполнение следующего за ним оператора.
Когда встречается break label;, программа выходит из оператора, помеченного label, и продолжает выполнение следующего за ним оператора. Оператор break должен быть вложен в ссылающуюся метку. Помеченный оператор может быть любым оператором (обычно блоком операторов); он не обязательно должен быть другим оператором цикла.
Оператор break, с последующей меткой или без нее, не может использоваться на верхнем уровне скрипта, модуля, тела функции или блока статической инициализации, даже если функция или класс дополнительно содержатся внутри цикла.
Примеры
break в цикле while
Следующая функция содержит оператор break, который завершает цикл while, когда i равно 3, а затем возвращает значение 3 * x.
function testBreak(x) {
let i = 0;
while (i < 6) {
if (i === 3) {
break;
}
i += 1;
}
return i * x;
}
break в операторах switch
Следующий код содержит оператор break, который завершает оператор switch, когда найдено совпадение case и выполнен соответствующий код.
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.
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.
block1: {
console.log("1");
break block2; // SyntaxError: label not found
}
block2: {
console.log("2");
}
Синтаксические ошибки также генерируются в следующих примерах кода, которые используют операторы break внутри функций, вложенных в цикл или помеченный блок, из которого операторы break намерены выйти.
function testBreak(x) {
let i = 0;
while (i < 6) {
if (i === 3) {
(() => {
break;
})();
}
i += 1;
}
return i * x;
}
testBreak(1); // SyntaxError: Illegal break statement
block1: {
console.log("1");
(() => {
break block1; // SyntaxError: Undefined label 'block1'
})();
}
Спецификации
Совместимость с браузерами
| Десктопные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
break |
1 |
12 |
1 |
4 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
Смотрите также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/break