Spec-Zone.ru › JavaScript

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'
  })();
}

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-break-statement

Совместимость с браузерами

Десктопные Мобильные Серверные
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

Смотрите также

  • continue
  • label
  • switch

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API