Javascript의 라벨은 식별자입니다. 레이블은 변수와 동일한 이름을 가질 수 있습니다(변수도 유형도 아님). 해당 기능은 "레이블이 있는 문"
레이블 문
을 식별하는 것입니다. 레이블은 명령문이나 명령문 블록 앞에 선언될 수 있으므로 명령문이나 명령문 블록에 "레이블이 지정"됩니다.
label1:
myFun1();
label2:{
var i = 1, j = 2;
var k = i j;
}
참고: label( label) 뒤에 여러 개의 연속된 문이 있는 경우 첫 번째 문에만 레이블이 지정됩니다.
GOTO는 Javascript에서 예약어이지만 GOTO 문은 없습니다. GOTO 외에도 Javascript에는 프로그램 흐름을 변경할 수 있는 세 가지 키워드(break, continue 및 return)가 있습니다. 그 중 break와 continue는 라벨과 함께 사용할 수 있습니다.
break 및 태그
break는 일반적으로 for, while 루프 및 switch 문을 중단하는 데 사용됩니다. 기본적으로 break 절은 가장 안쪽 루프 문 또는 전체 switch 문에서 작동하므로 break 문의 범위를 구체적으로 지정할 필요가 없습니다. 그러나 break 절에는 해당 범위를 나타내는 확장된 구문이 있습니다.
break my_label;
루프를 중단하고 분기를 전환하는 것 외에도 레이블이 있는 문을 중단할 수도 있습니다.
var str = 프롬프트('문자열을 입력하세요','1234567890');
my_label : {
if (str && str.length < 10) {
break my_label:
}
str = str.substr(str.length-10);
}
alert(str);
continue 및 label
continue는 루프 문에만 의미가 있으므로 for, for..에서만 작동할 수 있습니다. .in, while 및 do...while 이 문 안에 있습니다. 기본적으로 현재 루프를 중지하고 다음 루프 반복의 시작 부분으로 점프합니다.
continue 뒤에는 루프 본문 내에서 종료되고 레이블(label) 명령으로 계속되어 실행을 시작함을 나타내는 레이블(label)이 올 수도 있으며, 이 레이블이 나타내는 문은 반드시 이 계속 루프 문을 포함하십시오.
예:
loop:
for (var j = 0; j < 5; j )
{
if (j == 2) continue loop;
document.write("loop: " j );
}
위 예시의 continue 라벨은 라벨의 특별한 기능을 반영하지 않습니다. 실제로 라벨을 제거해도 효과는 동일합니다. 또 다른 예시를 살펴보겠습니다
document.write( "루프 시작!
");
outerloop: // 이것은 라벨 이름입니다
for (var i = 0; i < 3; i )
{
document.write ("외부 루프: " i "
");
for (var j = 0; j < 5; j )
{
if (j == 3) {
계속 외부 루프;
}
document.write("Innerloop: " j "
");
}
}
document.write("종료 중) 루프!
");
계속 라벨을 사용하여 외부 루프로 직접 이동하는 것이 포인트입니다.