728x90
728x90

세미콜론(;)은 문의 종료를 나타냄

→ 자바스크립트 엔진은 세미콜론으로 문이 종료한 위치를 파악하고 순차적으로 하나씩 문을 실행한다.

→ 따라서 문을 끝낼 때는 세미콜론을 붙여야 한다.

→ 단, 0개 이상의 문을 중괄호로 묶은 코드 블록 뒤에는 세미콜론을 붙이지 않는다

  • 이러한 코드 블록은 문의 종료를 의미하는 자체 종결성을 갖기 때문

문의 끝에 붙이는 세미콜론 : 옵션

→ 세미콜론은 생략 가능함

→ 자바스크립트 엔진이 소스코드를 해석할 때 문의 끝이라고 예측되는 지점에 세미콜론을 자동으로 붙여주는 기능 [세미콜론 자동 삽입 기능 : ASI] 이 암묵적으로 수행됨

  • 세미콜론 자동 삽입 기능의 동작과 개발자의 예측이 일치하지 않는 경우가 있음
function foo () {
	return
	{}
}

cosnole.log(foo{});

⇒ASI의 동작 결과 : return; {};

⇒개발자의 의도 : return{};

⇒결괏값 : undefined

var bar = function () {}
(function() {})();

⇒ASI의 동작결과 : var bar = function (){}function() {})();

⇒개발자의 예측 : var bar = function() {}; (function(){})();

⇒결괏값 : TypeError: (intermediate value)(…) is not a function

  • 세미콜론을 반드시 붙여야 한다는 주장이 다수를 차지하지만 붙이지 말아야 한다는 주장도 설등력이 있다.
  • 하지만 ESLint와 같은 정적 분석 도구에서도 세미클론 사용을 기본적으로 설정하고 있고 TC39도 세미콜론 사용을 권장하는 분위기이다/.
728x90
300x250

'2023 공부한것들' 카테고리의 다른 글

[5-6] 표현식인 문과 표현식이 아닌 문  (0) 2023.06.30
[TIL] 20230629 FRI [쉬어가는 하루]  (0) 2023.06.30
[5-4] 문  (0) 2023.06.30
[5-3] 표현식  (0) 2023.06.30
[5-2] 용어정리 리터럴  (0) 2023.06.30

+ Recent posts