5장 표현식과 문


식(표현식)이 평가되어 생성된 결과

리터럴

사람이 이해할 수 있는 문자 또는 약속 된 기호를 사용해 생성하는 표기법

JS 엔진은 런타임에 리터럴을 평가해 값을 생성함.
Untitled 2.png|Untitled 2.png

다음과 같은 리터럴들이 있다.
특이한 점은 함수도 리터럴이라는 것이다. 나중에 배우겠지만 함수는 일급객체로 평가되어 값을 생성할 수 있다.

표현식

값으로 평가될 수 있는 문. 즉, 표현식이 평가 되면 새로운 값을 생성하거나 기존값을 참조

리터럴도 표현식이다.
표현식은 리터럴, 식별자, 연산자, 함수호출 등의 조합으로 이루어질 수 있다.
즉, 값으로 평가될 수 있는 문은 모두 표현식이다.

// 리터럴 표현식
10
'Hello'

// 식별자 표현식(선언이 이미 존재한다고 가정)
sum
person.name
arr[1]

// 연산자 표현식
10 + 20
sum = 10
sum !== 10

// 함수/메서드 호출 표현식(선언이 이미 존재한다고 가정)
square()
person.getName()

표현식 1+2 는 평가되어 값 3을 생성하므로 1+2 와 값 3은 동치다. 따라서 표현식은 값처럼 사용할 수 있다.
⇒ 문법적으로 값이 위치할 수 있는 자리에는 표현식도 위치할 수 있다는 뜻!

프로그램을 구성하는 기본 단위이자 최소 실행 단위

토큰 : 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소
문은 여러 토큰으로 구성됨.
선언문, 할당문, 조건문, 반복문 등으로 구분할 수 있음.
그냥 실행 단위라고 보면 됨.

표현식인 문과 표현식이 아닌 문

표현식인 문은 값으로 평가 될 수 있고, 표현식이 아닌 문은 값으로 평가 될 수 없다.
→ 변수에 할당해보면 명료하게 알 수 있다.

reference