코딩테스트를 준비하면서 많은 문제를 풀다보니 계속 헷갈리는 것이 한 가지 있었다. 대체 세미콜론은 어디에 붙여야 하는거지..?
검색을 해보니까 자동으로 붙여주기때문에 안붙여도 된다 파 VS 그래도 붙여야 문제가 없으므로 전부 붙여줘야한다 파가 아주 쟁쟁하게 겨루고 있었다.
나는 후자를 택하기로 했다. 하지만 안 붙여도 되는 상황을 정리해보려한다.
자바스크립트에서는 모든 문(statement)의 끝에 ; 을 적는다. 자바스크립트 실행 엔진은 이 세미콜론을 통해 각 문의 종료 위치를 파악할 수 있다.
코드 블록 {...} 뒤에는 세미콜론을 사용하지 않는다. 코드 블록문은 자체적인 종결성을 가지고 있기 때문에 종료 위치를 의미하는 세미콜론을 사용할 필요가 없기 때문이다.
function test (){
if(){
return false; // 일반적인 문 - 세미콜론 사용 O
} // 붙이지 않는다.
for(let i = 0; i < n.length; i++){
} // 붙이지 않는다.
} // 붙이지 않는다.
console.log(); // 세미콜론 사용 O
for(let i = 0; i < n.length; i++){ // 마지막 증감문에는 세미콜론 X
}
객체를 선언한 중괄호 { };
반면 객체를 선언한 중괄호 뒤에는 세미콜론을 붙인다. 이는 코드 블록이 아니라 객체의 값을 표현하는 하나의 방식(리터럴 방식)이기 때문이다.
let team = {
designer : michael,
marketer : david,
developer : lisa
}; // 객체 선언문 - 세미콜론 사용 O
자동으로 붙여주긴하지만 혹시 모를 1%의 가능성으로 오류가 날 수 있다면
난 세미콜론을 붙이는 걸 추천한다!