yngmanie 블로그

javascript에서 세미콜론 사용법

해당 포스트는 Your Guide to Semicolons in JavaScript을 번역하여 작성하였습니다. 잘못된 부분이 있다면 댓글 부탁드립니다.

해당 포스트는 Alex.j가 작성한 포스트입니다.

언제 세미콜론이 필요할까요? 여기 그 해답이 있습니다.

요구사항: 두개의 구문이 동일한 라인에 있을 때

한 라인에 2개 이상의 구문이 있다면 세미콜론을 반드시 사용해야합니다.

var i = 0;
i++; // <- 세미콜론 필수

var i = 0; // <- 세미콜론 선택
i++; // <- 세미콜론 선택

옵션: 구문이 끝날 때

세미콜론을 javascript에서 구문을 구분할 때 사용하지만 줄바꿈이 있을때는 생략할 수 있습니다.({}안에 한개의 구문만 존재할 때도 생략이 가능합니다.) 구문은 컴퓨터에게 지시하는 하나의 코드 모음입니다. 아래에 기본적인 구문 예시가 있습니다.

var i; // 변수선언
i = 5; // 변수할당
i = i + 1; // 변수할당
i++; // 변수 할당
var x = 9; // 변수선언 및 할당
var fun = function() {}; // 변수선언, 할당 및 함수 정의
alert("안녕"); // 함수호출

모든 구문은 ;으로 끝 맺을 수 있지만 반드시 그럴 필요는 없습니다. 일부 사람들은 구문을 ;으로 끝내는 것을 좋은 습관이라고 합니다. 왜냐하면 코드를 압축하고 파싱하기 쉽기 때문입니다.

주의해야할 점!

  1. 중괄호가 끝나는 지점 중괄호가 끝나는 지점에 세미콜론을 추가하면 안됩니다. 이 중외 예외는 var obj = {};와 같이 구문을 할당할 때 입니다.
// }뒤에 세미콜론 추가하지 않기
if(){}else{}
for(){}
while(){}
// 함수 선언
function(){}

// 예외
do{} while();
  1. if, for, while, switch문의 괄호 다음에 세미콜론을 사용하지 않습니다. if문의 {}뒤에 세미콜론을 넣어도 문제가 없습니다. 단지 필요없다고 경고가 뜰 뿐 세미콜론은 무시됩니다. if, for, while, switch문의 ()뒤에 세미콜론을 사용하는 것은 안좋은 사용법이다.
if (0 === 1);
{
  alert("안녕");
}

// 위에 코드는 아래 코드와 동일합니다.

if (0 === 1)
  // if조건문에 대한 실행문 즉, 아무 내용이 없음
  alert("안녕");

세미콜론때문에 0과 1이 같지 않지만 위에 코드는 “안녕”이라는 alert를 띄울 것입니다. 세미콜론때문에 javascript가 if문의 ()뒤에 아무런 실행문이 아무런 구문이 없다고 생각하고 alert(“안녕”)을 독립적인 실행문으로 간주합니다.

물론 예외가 있습니다.

for문의 ()는 예외입니다. 첫 번째와 두 번째 구문뒤에만 세미콜론을 추가하고 마지막에는 세미콜론을 추가하지 않습니다.

for (var i=0; i < 10; i++)  {/*actions*/}       // 올바른 문법
for (var i=0; i < 10; i++;) {/*actions*/}       // 문법 에러