JavaScript

조건문 중괄호 생략 가능한 케이스

lshjju 2026. 6. 16. 14:38

코딩하다보면 조건문에 중괄호가 생략된 코드를 보게 되는 경우가 있습니다.


function goLeft() {
    if (index == 0) index = slides.length - 1;
    else index--;
    slides[0].style.marginLeft = "-" + index * 800 + "px";
}

자바스크립트를 공부하시다 보면 이런 코드를 종종 마주치게 되죠!

"어? 내가 배울 땐 분명 if () { ... } 형태로 중괄호를 쓰라고 했는데 왜 이건 없지?" 싶으셨을 겁니다.

결론부터 말씀드리면, 자바스크립트 문법상 if문이나 else문 바로 다음에 실행할 코드가 '단 한 줄(한 문장)'일 때는 중괄호{}를 생략할 수 있기 때문입니다.

이렇게 코드를 작성하는 이유와 장단점을 깔끔하게 정리해 드릴게요.

1. 왜 이렇게 쓰나요? (주요 이유)

  • 코드의 간결성 (가독성 향상): 코드가 짧을 때 중괄호와 줄 바꿈을 일일이 넣으면 오히려 코드가 길어지고 한눈에 들어오지 않을 수 있습니다. 중괄호를 빼면 시각적으로 군더더기 없는 깔끔한 코드가 됩니다.
  • 생산성: 타이핑할 글자 수가 줄어드니 가볍게 슥슥 쓰기 편합니다.

원래는 아래처럼 써야 합니다.

JavaScript
 
// 중괄호를 모두 쓴 버전
function goLeft() {
    if (index == 0) {
        index = slides.length - 1;
    } else {
        index--;
    }
    slides[0].style.marginLeft = "-" + index * 800 + "px";
}

 

하지만 실행할 내용이 각각 index = slides.length - 1;과 index--;로 딱 한 줄씩이다 보니, 질문하신 코드처럼 중괄호를 생략하고 한 줄로 붙여버린 것입니다. 의미는 완전히 같습니다.

2. 주의해야 할 치명적인 함정 (단점)

이 방식은 편리하지만, 초보자 시절에 가장 많은 버그를 만들어내는 주범이기도 합니다.

❌ 흔히 하는 실수 예시

만약 else일 때 index--도 하고, 알림창(alert)도 띄우고 싶어서 아래처럼 코드를 수정했다고 해볼게요.

JavaScript
 
if (index == 0) index = slides.length - 1;
else 
    index--;
    alert("왼쪽으로 이동!"); // ⚠️ 개발자의 착각!

 

들여쓰기(인덴트)를 해두어서 마치 else일 때 둘 다 실행될 것 같지만, 자바스크립트 엔진은 딱 첫 번째 줄(index--;)만 else에 포함된 것으로 인식합니다. 즉, alert("왼쪽으로 이동!");은 if-else문과 상관없이 무조건 항상 실행되어 버립니다.

💡 요약하자면?

  • 실행할 코드가 딱 1줄일 때만 중괄호를 생략할 수 있다.
  • 코드가 간결해진다는 장점이 있지만, 나중에 코드를 추가할 때 중괄호를 깜빡하면 심각한 버그가 생길 수 있다.

현업에서의 팁

구글이나 에어비앤비 같은 글로벌 기업의 코드 스타일 가이드에서는 에러 방지를 위해 **"한 줄 짜리 코드라도 무조건 중괄호{}를 써라"**라고 권장하는 경우가 많습니다.
하지만 조건부로 값을 간단히 제어할 때는 생략하는 개발자도 아주 많으니, 양쪽 다 읽고 이해하실 수 있으면 좋습니다!


'JavaScript' 카테고리의 다른 글

JS this  (1) 2026.06.03
JavaScript BOM  (0) 2026.06.02
JavaScript Built in object  (0) 2026.06.02
JavaScript LocalStorage to-do-list practice  (0) 2026.06.01
JavaScript screen object method  (0) 2026.06.01