Синтаксис JavaScript Справочник JavaScript Коды клавиш События Строгий режим

JavaScript: Метки инструкций

В JavaScript любая инструкция может быть помечена предшествующим ей идентификатором, чтобы затем на неё можно было ссылаться. Такой идентификатор называется меткой инструкции. Синтаксис меток:

метка: инструкция;

// Метку и инструкцию допускается размещать на разных строках
метка:
инструкция;

Несмотря на то, что пометить можно любую инструкцию, помечать имеет смысл только инструкции, имеющие тело.

Использовать метки можно только внутри тех инструкций, к которым они применяются. Метки работают только совместно с инструкциями break и continue. Имя метки указывается после инструкции break или continue:

break имя_метки;
continue имя_метки;

С помощью меток можно явно указывать, к какому циклу или к какой другой инструкции они относятся. Пример работы инструкции break с меткой в составной инструкции:

var x = 10;

test: {
  x = 15;
  break test;
  x = 20;   // Не выполнится
}

alert(x);   // 15

Пространство имён для меток отличается от пространства имён для переменных и функций, поэтому в качестве меток допускается использовать идентификаторы, совпадающие с именами переменных или функций:

var test = 10;

test: {
  if (test == 10) break test;
  test = 25;
}

alert(test);   // 10

Вложенные инструкции не могут помечаться теми же идентификаторами, что и вмещающие их инструкции, но две независимые инструкции могут помечаться одинаковыми именами меток.

Любая инструкция может иметь множество меток, в этом случае метки просто указываются друг за другом:

var x = 10;

test1: test2: {
  if (x == 15) break test1;
  x = 20;
  if (x == 20) break test2;
  x = 25;
}

alert(x);   // 20

Обычно метки используются только при работе с вложенными циклами:

test:
for (var i = 0; i < 5; i++) {
  for (var j = 0; j < 5; j++) {
    if (j == 3) break test;   // Если переменная j равна 3, то завершаем
                              // итерацию внутреннего цикла
                              // и выходим из внешнего цикла
  }
}
document.write("i: " + i + "<br>j: " + j);
    
Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011-2016 © puzzleweb.ru

Реклама на сайте | Обратная связь