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);
С этой темой смотрят: