Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 중괄호 뒤에 세미콜론을 붙여야 하는 경우는 언제일까?

JavaScript에서 세미콜론(;)은 선택 사항입니다. 일반적으로 C, C++, Java와 마찬가지로 JavaScript의 단순 문(statement) 끝에는 세미콜론을 붙이는 것이 관례입니다. 하지만 JavaScript는 각 문장을 서로 다른 줄에 작성하면 세미콜론을 생략할 수 있도록 허용합니다. 이는 인터프리터가 줄바꿈을 기준으로 문장의 끝을 자동으로 판단하는 '자동 세미콜론 삽입(ASI, Automatic Semicolon Insertion)' 덕분입니다.

세미콜론을 사용하는 것이 좋은 이유

그럼에도 불구하고 세미콜론을 명시적으로 붙이는 것이 좋은 프로그래밍 습관으로 권장됩니다. ASI 동작 방식이 때때로 개발자의 의도와 다르게 해석될 수 있어, 예상치 못한 버그를 유발할 수 있기 때문입니다. 특히 여러 문장을 한 줄에 작성하거나 코드를 압축(minify)하는 경우 세미콜론이 없으면 오류가 발생할 수 있습니다.

중괄호 뒤에 세미콜론이 필요한 경우: 함수 표현식

JavaScript에서는 하나의 문(statement)이 끝난 후 세미콜론을 붙입니다. 변수에 함수를 할당하는 함수 표현식(Function Expression)이 대표적인 예입니다. 이 경우 전체가 하나의 할당문이므로 마지막 중괄호 뒤에 세미콜론을 붙여야 합니다.

var s = function() {
    alert("Hello World!");
};

세미콜론이 필요하지 않은 경우: 함수 선언문

반면, 독립적으로 존재하는 함수 선언문(Function Declaration)에는 세미콜론이 필요하지 않습니다. 함수 선언문은 값으로 평가되는 표현식이 아니라 별도의 문법 구조이기 때문입니다.

function greet() {
    alert("Hello World!");
}

정리

핵심 규칙을 정리하면 다음과 같습니다.

  • 함수 표현식(변수에 할당되는 익명 함수 등): 문장의 일부이므로 중괄호 뒤에 세미콜론을 붙인다.
  • 함수 선언문(function 키워드로 시작하는 독립 함수): 세미콜론이 필요 없다.
  • if, for, while 같은 제어문의 중괄호: 역시 세미콜론을 붙이지 않는다.

혼란을 피하기 위해 코드 스타일 가이드를 정하고 일관되게 적용하는 것이 가장 좋습니다. 많은 개발자와 린팅 도구(ESLint 등)가 세미콜론 사용 여부에 대한 일관된 규칙을 강제하도록 설정되어 있습니다.