자바스크립트에 goto 문이 없는 이유
자바스크립트에는 실제로 실행할 수 있는 goto 문이 존재하지 않습니다. 다만 'goto'라는 키워드 자체는 언어 사양에서 예약어(reserved keyword)로 지정되어 있어, 변수명이나 함수명으로 사용할 수 없습니다.
goto가 널리 사용되지 않는 이유는 자바스크립트에서 굳이 필요하지 않기 때문입니다. 일반적으로 goto 문은 코드의 흐름을 복잡하게 만들고 가독성과 유지보수성을 떨어뜨리기 때문에, 좋은 프로그래밍 관행으로 여겨지지 않습니다.
전처리(Preprocessing)로 goto 흉내 내기
흥미롭게도 자바스크립트 전처리기를 활용하면 goto와 유사한 방식으로 코드를 작성할 수 있습니다. 아래 예시를 살펴보겠습니다.
var a = 0;
[lbl] beginning:
console.log("Demo Text!");
a++;
if(a < 424) goto beginning;
위 코드는 전처리 과정을 거치면 다음과 같이 변환됩니다.
var a = 0;
beginning: while(true) {
console.log("Demo Text!");
a++;
if(a < 424) continue beginning;
break;
}
즉, 라벨(label)과 while 반복문, continue 문을 조합하면 goto 문과 같은 반복 흐름을 구현할 수 있습니다. 하지만 이러한 방식도 특수한 경우가 아니라면 표준적인 반복문(for, while 등)을 사용하는 것이 바람직합니다.