5장 표현식과 문

Boseong Choi·2023년 6월 16일
0

(개념을) 이해한다는 것은 용어를 정확히 이해하고 설명할 수 있다는 것이다.

5.1 값

값은 표현식이 평가되어 생성된 결과다.

// 10 + 20은 평가되어 숫자 값 30을 생성한다.
10 + 20;
  • 모든 값은 데이터 타입을 가진다.
var sum = 10 + 20
  • sum 변수에 할당되는 값은 10 + 20이 평가된 결과인 숫자 값 30이다.

5.2 리터럴

사람이 이해할 수 있는 문자 또는 기호를 사용해 값을 생성하는 표기법.

3

예제의 3은 숫자 리터럴이다. 사람이 이해할 수 있는 숫자 3을 코드에 적으면 엔진은 이를 평가하여 숫자 값 3을 생성한다.

아직까지는 평가보단 해석이란 단어로 바꾸면 이해가 좀더 쉬워지는 느낌.

5.3 표현식

5.1 -> 값은 표현식이 평가되어 생성된 결과다.

표현식은 값으로 해석할 수 있는 문. 표현식이 해석되면 새로운 값을 생성하거나 기존 값을 참조한다. 리터럴도 값으로 해석되는데, 엔진에 의해 해석되어 값을 생성하므로 리터럴도 표현식이다.

표현식은 리터럴, 식별자, 연산자, 함수 호출 등의 조합으로 이뤄질 수 있다. 즉, 값으로 해석되는 모든 문은 표현식이다.

  • 리터럴, 연산자
    해석 시에 새로운 숫자 값을 생성하므로 표현식임.
  • 식별자
    (변수)식별자를 참조하면 변수 값으로 해석하기 때문에 표현식.

5.4 문

프로그램을 구성하는 기본 단위이자 최소 실행 단위. 문의 집합이 프로그램이고, 문을 작성하고 순서에 맞게 나열하는 것이 프로그래밍이다.

문은 여러 토큰으로 구성된다. 토큰은 문법적으로 더 이상 나눌 수 없는 기본 요소. (키워드, 식별자, 연산자, 리터럴, 세미콜론, 마침표 등) 또한 문을 명령문 이라고도 부른다. 문이 실행되면 명령이 실행되고 무슨 일이 일어나게 된다.

(명령)문은 선언문 할당문 조건문 반복문 등으로 구분할 수 있다.

5.5 세미콜론과 세미콜론 자동삽입 기능

세미콜론은 문의 종료를 나타낸다. 세미콜론은 생략 가능한데, 엔진이 세미콜론 자동 삽입 기능을 암묵적으로 수행해주기 때문. 근데 세미콜론 붙이는게 익숙해서 사용하는게 좋을 듯.

5.6 표현식인 문과 아닌 문

구별하는 가장 간단한 방법은 변수에 할당해 보는 것. 표현식인 문은 값으로 해석되므로 변수에 할당할 수 있다. 하지만 표현식이 아닌 문은 값으로 해석할수 없으므로 변수에 할당하면 에러가 발생한다.

// 변수 선언문은 값으로 평가될 수 없으므로 표현식이 아니다.
var x;
// 1, 2, 1 + 2, x = 1 + 2는 모두 표현식이다.
// x = 1 + 2는 표현식이면서 완전한 문이기도 하다.
x = 1 + 2;

개발자 도구에서 표현식이 아닌 문을 설정하면 언제나 undefined를 출력한다. 완료 값은 표현식을 해석한 결과가 아니다. 그래서 var x; 같은 변수 선언문은 undefined를 뱉으니 표현식이 아닌 듯.

var foo = var x; // SyntaxError: Unexpected token var
// 위 예제의 var x는 변수 선언문이므로 값으로 평가될 수 없다. 
// 따라서 변수 선언문은 표현식은 값처럼 사용할 수 없다.
// 변수 선언문은 표현식이 아닌 문이다.
var x;

// 할당문은 그 자체가 표현식이지만 완전한 문이기도 하다. 즉, 할당문은 표현식인 문이다.
x = 100;
var foo = x = 100;
console.log(foo); // 100

표현식인 문은 값처럼 사용할 수 있다.

profile
Frontend Developer

0개의 댓글