코딩하다보면 조건문에 중괄호가 생략된 코드를 보게 되는 경우가 있습니다.
function goLeft() {
if (index == 0) index = slides.length - 1;
else index--;
slides[0].style.marginLeft = "-" + index * 800 + "px";
}
자바스크립트를 공부하시다 보면 이런 코드를 종종 마주치게 되죠!
"어? 내가 배울 땐 분명 if () { ... } 형태로 중괄호를 쓰라고 했는데 왜 이건 없지?" 싶으셨을 겁니다.
결론부터 말씀드리면, 자바스크립트 문법상 if문이나 else문 바로 다음에 실행할 코드가 '단 한 줄(한 문장)'일 때는 중괄호{}를 생략할 수 있기 때문입니다.
이렇게 코드를 작성하는 이유와 장단점을 깔끔하게 정리해 드릴게요.
1. 왜 이렇게 쓰나요? (주요 이유)
- 코드의 간결성 (가독성 향상): 코드가 짧을 때 중괄호와 줄 바꿈을 일일이 넣으면 오히려 코드가 길어지고 한눈에 들어오지 않을 수 있습니다. 중괄호를 빼면 시각적으로 군더더기 없는 깔끔한 코드가 됩니다.
- 생산성: 타이핑할 글자 수가 줄어드니 가볍게 슥슥 쓰기 편합니다.
원래는 아래처럼 써야 합니다.
// 중괄호를 모두 쓴 버전
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)도 띄우고 싶어서 아래처럼 코드를 수정했다고 해볼게요.
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 |