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