ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Copilot] JS에서 함수는 세미콜론(;)을 붙이지 않는 이유
    Front-end 개발 2024. 3. 13. 16:11

     

    Q. JavaScript에서 함수 뒤에 세미콜론을 붙이지 않는 이유가 뭐야?

    요약) JavaScript의 함수는 자체 종결성을 가지는 코드 블록이기 때문에 세미콜론을 붙이지 않는다.

     

    💡 Copilot 답변
    JavaScript에서 함수 뒤에 세미콜론을 붙이지 않는 이유는 코드 블록문이 자체적으로 종결성을 갖고 있기 때문입니다. 이러한 코드 블록은 언제나 문(statement)의 종료를 의미하는 자체 종결성을 가지고 있습니다. 따라서 if문, for문, 함수 문 등의 코드 블록 뒤에는 세미콜론을 붙이지 않습니다. 반면, 객체를 선언하는 중괄호 {} 뒤에는 세미콜론을 붙입니다. 이는 코드 블록이 아니라, 객체를 표현하는 리터럴 방식의 값 할당이기 때문입니다.
    세미콜론을 붙이지 않아도 JavaScript Engine이 자동으로 삽입해주는 경우도 있습니다. 하지만 명시적으로 세미콜론을 붙이는 것이 코드의 가독성과 안정성을 높이는 좋은 습관입니다.

     

     

    Q. JavaScript에서 식(expression)과 문(statement)의 정의를 설명하고 차이점을 정리해 줘

    요약) 식은 값을 계산하고 다루며 값을 반환한다. 문은 조건문, 반복문, 변수 할당 등 프로그램의 동작을 결정하고 값을 반환하지 않는다.

     

    💡 Copilot 답변
    1. 식 (Expression):
        - 식은 값을 평가하고, 결과를 반환하는 코드 조각입니다.
        - 값을 가지며, 변수에 할당하거나 다른 식에서 사용할 수 있습니다.
        - 예를 들면, 숫자 연산, 문자열 연결, 함수 호출, 변수 참조 등이 식의 예시입니다.
        - 식은 값을 반환합니다.
    2. 문 (statement):
        - 문은 프로그램에서 실행 가능한 최소 단위입니다.
        - 완전한 동작을 수행하며, 보통 세미콜론(;)으로 끝납니다.
        - 예를 들면, 조건문(if), 반복문(for, while), 함수 선언, 변수 할당 등이 문의 예시입니다.
        - 문은 값을 반환하지 않습니다.
    간단히 말하면, 식은 값을 계산하고 다루고, 문은 프로그램의 동작을 결정하는데 사용됩니다. 이 둘을 구분하여 사용하면 코드를 더 명확하고 유지보수하기 쉽게 작성할 수 있습니다.

     

    +) 값을 반환하는 식은 변수 할당문 우변에 사용할 수 있지만, 문은 할당문 우변에 올 수 없다.

    +) 변수 선언/ 초기화/할당문, 함수 호출문, 반환(return)문은 세미콜론으로 끝나지만 코드 블록({})이 들어간 조건문, 반복문, 함수 선언문, 예외 처리 구문 등은 자체 종결성을 가지고 있으므로 세미콜론을 붙이지 않는다.

    +) JavaScript의 함수는 특이하다.

    함수를 값으로 취급하는 JavaScript에서 함수는 함수 선언문(Function Declaration)과 함수 표현식(Function Expression) 두 가지 방식으로 사용할 수 있다. 함수 선언은 함수를 값으로 갖는 변수를 생성하는 문에 해당하지만, 함수 표현식은 함수를 생성하고 식(Expression)처럼 할당 연산자(=) 우변에 함수를 값으로 할당한다. 즉, 함수는 문으로 선언할 수 있으면서 동시에 식처럼 변수에 할당할 수 있다.

     함수 선언문의 경우 코드의 위치에 상관없이 호이스팅되어 스코프의 최상단으로 끌어 올려져 함수 선언문이 정의되기 전에도 함수를 호출할 수 있다. 반면 함수 표현식은 정의된 위치에서 함수가 생성되고 정의된 이후로 호출이 가능하다.

Designed by Tistory.