Q: 자바스크립트에서 꼭 세미콜론을 붙여주는게 좋을까요? (번역)

[원본 링크]

원문
https://stackoverflow.com/questions/444080/do-you-recommend-using-semicolons-after-every-statement-in-javascript


질문
자바스크립트에서는 각 문장의 끝마다 세미콜론을 붙이는 걸 추천하나요?
세미콜론을 빼놔도 자바스크립트 파서가 알아서 삽입해주잖아요. 그래도 꼭 넣어줘야하는걸까요?
...후략


답1:
네. 각 문장 끝마다 붙여주는게 좋습니다.


답2:
세미콜론을 빼먹으면 아래와 같이 모호한 상황이 발생할 수 있습니다.

// 함수 정의
**var fn = function () **
**{ **
**    ****//... **
**} **
// 여기 세미콜론 빼먹음

// 그러고 나서 클로저를 생성하자마자 실행함
**(function () **
**{ **
**    ****//... **
})();


그럼 저건 이렇게 번역될 겁니다.

**var fn = function () **
**{ **
**   **** //... **
**}(function () { **
**   **** //... **
})();

디용?

첫번째 함수의 인자로 두번째 함수를 전달하고, 첫번째 함수의 결과값을 함수로 호출하는 코드가 되어버렸네요.

이러면 두번째 함수는 런타임에 "... is not a function(...는 함수가 아닙니다.)" 에러를 던지며 실패할 겁니다.