Это — метка. Как
case: или
default:, использующиеся в
switch.
Обычно в JS редко увидишь использование меток, поскольку единственная их цель — в случае нескольких вложенных циклов переходить из тела любого внутреннего цикла к отмеченному внешнему, невзирая на уровень вложенности.
Для этого используются инструкции
break и
continue, которые без метки работают непосредственно с тем циклом, в теле которого указаны. Если добавить метку, происходит прерывание (
break) помеченного цикла либо переход к его блоку изменений (
continue).
Там же написано:
useful for nested loops
Пример:
var stop = 7;
label:
for (var i = 10; i--;) {
console.log('i:', i);
for (var j = 10; j--;) {
console.log('j:', j);
if (j == stop) {
console.log('stop');
break label;
}
}
}
console.log('stopped');