Помощь в понимание фрагмента из книги по Javascript, тема labeled statement
Всех приветствую! Читаю книгу по javascript, и столкнулся с таким моментом: "Labeled statements may themselves be labeled. Effectively, this means that any statement may have multiple labels." ("Помеченные операторы можно помечать снова. Фактически это означает, что любой оператор может иметь множество меток."). Внизу предоставлю пример, как я это понял:
var x = 0;
var y = 0;
loopName1: loopName2: while (x < 1) {
while (y < 1) {
console.log("loop2");
break loopName1;
y++;
}
x++;
console.log("loop1");
}
т.е одному statement можно дать два имени. Следовательно break loopName1; и break loopName2; - делают одинаковое действие. Пытаясь понять, где можно это использовать - ни к чему не пришел.
От этого возник вопрос: "правильно ли я понял, о чем говорилось в книге?". Если все правильно, то где это можно использовать?
Ответы (1 шт):
От этого возник вопрос: "правильно ли я понял, о чем говорилось в книге?".
Ты все правильно понял.
let i = 0
test1: test2: while (++i < 4) {
console.log(i)
if (i == 1) continue test1
console.log('Раз')
if (i == 2) continue test2
console.log('Два')
}
console.log('Все')
Если все правильно, то где это можно использовать?
Как уже писали в комментариях, метки вообще вряд ли используют... Поскольку в мало каких ЯП метки вообще поддерживаются. Так зачем путать других людей такими возможностями JS.
Суть "перечня" меток к одному оператору - одно и то же "место", на которое будет осуществляться переход. Разница только в идентификаторе метки. Разве что читаемость кода "улучшить". :)