[자바스크립트]

[JavaScript/DeepDive]05.표현식과 문

ki7348 2021. 5. 5. 22:39
  • [5.1] 값
  • 값은 식이 평가되어 생성된 결과를 말한다.
    • 메모리에 저장된 값은 데이터 타입에 따라 다르게 해석될 수 있다.
  • 변수에 할당되는 것은 값이다.
    • ex) var sum=10+30 
      • 변수에는 10+20이 평가되어 생성된 숫자 값 30이 할당된다.
      • 메모리 공간에 저장된 것은 할당 이전 평가된 값 30이다.

 

 

  • [5.2] 리터럴
  • 리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법이다.
    • ex) 3
      • 3은 단순한 아라비아 숫자가 아니라 숫자 리터럴이다.
      • 숫자 리터럴을 코드에 기술하면 자바스크립트 엔진은 이를 평가해 숫자 값 3을 생성한다.
  • 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성한다.

 

 

  • [5.3] 표현식
  • 표현식은 값으로 평가될 수 있는 문이다. 즉, 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 생성한다.
    • 리터럴은 그 자체로 표현식이다.
    • 값으로 평가될 수 있는 문은 모두 표현식이다.
      • 식별자 참조도 표현식으로 볼 수 있다.
        • 변수 식별자를 참조하면 변수 값으로 평가되기 때문이다.
  • 표현식과 표현식이 평가된 값이 동등한 관계를 동치라고 한다.
    • ex) 1+2=3
  • 표현식은 다른 표현식의 일부가 되어 새로운 값을 만들어 낼 수 있다.
    • ex) 식별자 표현식 x, 리터럴 3, 표현식 x+3

 

 

  • [5.4] 문
  • 문은 프로그램을 구성하는 기본 단위이자 최소 실행 단위이다.
    • 문의 집합으로 이뤄진 것이 프로그램이다.
  • 문은 여러 토큰으로 구성되는데, 토큰이란 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소를 의미한다.
    • ex) [;] [.] [var] [sum] [=] [1] [+] [2]
  • 문은 선언문, 할당문, 조건문, 반복문 등으로 구분할 수 있다.
  1. 선언문 ex) var x;
  2. 할당문 ex) x = 5;
  3. 함수 선언문 ex) function foo () {}
  4. 조건문 ex) if (x>1) {console.log(x);}
  5. 반복문 eX) for ( var i = 0; i < 2; i++) { console.log(i); }

 

 

  • [5.6] 표현식인 문과 표현식이 아닌 문
  • 표현식은 문의 일부일 수도 있고 그 자체로 문이 될 수도 있다.
  • 문에는 표현식인 문과 표현식이 아닌 문이 있다.
    • 표현식인 문은 값으로 평가될 수 있는 문이다.
      • ex) x = 1 + 2;
    • 표현식이 아닌 문은 값으로 평가될 수 없는 문이다.
      • ex) var x;
  • 표현식인 문과 표현식이 아닌 문을 구별하는 가장 간단하고 명료한 방법은 변수에 할당해 보는 것이다.
  • 표현식이 아닌 문은 변수에 할당하면 에러가 발생한다.
    • var foo = var x        SyntaxError