• 모닥위키모닥위키
  • 모닥위키
위키
  • 임의문서
  • 주간인기
  • 문서
  • 시리즈
    AAAdddvvveeerrrtttiiissseeemmmeeennntttAdvertisement

    © 2025 modak.wiki All rights reserved.

      Expression vs Statement

      Chapter 7 - Expression vs Statement

      컴퓨터/IT학습
      lu

      luasenvy (luasenvy)

      CC BY 4.0 국제규약

      위 영상에서 아주 명확하게 알려준다. 한 번은 시청하길 적극 권장한다.

      Expression - 값과 함수

      Expression을 직역하면 "식"이지만 여기서는 '문법적인 표현 방법'을 말한다. 자바스크립트의 문법적 표현에 있어서 '함수'와 '값'은 결국 다르지 않다는 것에서 시작한다. 인터프리터의 입장에서 본다면 함수(Function)도 결국엔 반환된 값(Value)을 표현하는 수단이다. 이는 곧 함수와 값을 동일하게 표현할 수 있음을 의미한다.

      인터프리터 단계별 예시
      /*  소스 */ 2 + Math.pow(2, 1 + 1);
      /* 1단계 */ 2 + Math.pow(2, 2);
      /* 2단계 */ 2 + 4;
      /*  결과 */ 6;
      

      위 예제에서 소스는 값 3개와 함수 1개로 이루어져 있다. 총 4개의 expression으로 구성되어 있으며 인터프리터의 입장에서는 하나의 값으로 볼 수 있다. 직관적으로도 2 + 22 = 6 등식이 성립하는 것을 생각해본다면 쉽게 이해할 수 있다.

      Statement

      마찬가지로 문법적 의미를 나타내며 if, for, switch, break 등의 작동 방식을 말한다. 'Expression'(값)을 제외한 나머지라고 생각하면 된다.

      const value = 2 + Math.pow(2, 2); // 소스
      

      위 예제에서는 const value = 이 부분이 'Statement'에 속한다. 값이 아닌 메모리를 어떻게 설정할지에 대한 작동 방식에 대한 명령이다. 이렇게 expression과 statement의 차이점을 이해하면 왜 오류가 나는지 조금은 더 깊게 이해할 수 있다.

      Math.pow(2, const a = 2); // ERROR
      

      함수는 expression으로 값으로 표현될 수 있어야 한다. 물론, 직접 실행할 필요 없이 문법적 구문 오류에서 걸러지겠지만 실행한다고 가정하면 직관적으로는 a변수에 2가 할당되고 22이 계산되는 것이 합리적으로 보인다. 그러나 실행해야하는 인터프리터의 입장이 되어본다면 단계를 거칠 수가 없다. Math.pow() 함수는 앞서 정리했듯 expression이므로 값으로 볼 수 있어야 하는데 중간에 const a statement가 위치하게 되면서 값으로 취급할 수가 없게 된다.

      초판: 2024. 08. 16. 11:36:34

      © 2024 이 문서는 "CC BY 4.0 국제규약" 라이선스로 배포 되었습니다. 모든 권리는 저자에게 있습니다.

      Expression vs Statement

      Expression - 값과 함수
      Statement