5.1 값
표현식(expression)이 평가(evaluation)되어 나온 결과
- 평가(evaluation) : 입력받은 식에 대한 값을 생성하거나 참조하는 것
- 표현식(expression)은 20 + 30, 이 식을 평가하여 나온 값이 50
- 보통은 리터럴로 값을 생성함
5.2 리터럴
사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법
- 리터럴을 입력하면, 런타임에 JS 엔진이 리터럴을 평가해 값을 생성한다.
5.3 표현식 expression
값으로 평가될 수 있는 모든 문
- 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조함
- 리터럴도 값으로 평가되기 때문에 자체가 표현식임
- 식별자 참조는 값을 생성하지 않지만 값으로 평가되므로 표현식임
- 리터럴, 식별자(변수, 함수 등의 이름), 연산자, 함수 호출 등의 조합으로 이루어짐
- 표현식과 표현식이 평가된 값 동치 ⇒ 표현식은 값처럼 사용가능
5.4 문 statement
프로그램을 구성하는 기본 단위이자 최소 실행 단위
- 문의 집합으로 이뤄진 것이 프로그램
- 문 작성 및 순서에 맞게 나열이 프로그래밍
- 문은 여러 토큰으로 구성됨
- 토큰: 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소
- 키워드, 식별자, 연산자, 리터럴, 세미콜론(;) ..등
- 문은 컴퓨터에게 내리는 명령문
- 선언문, 할당문 조건문, 반복문 등으로 구분됨
5.5 세미콜론과 세미콜론 자동 삽입 기능
세미콜론(;)은 문의 종료를 나타낸다
- JS 엔진은 세미콜론으로 문의 종료를 파악하고 실행함
- 여러 문을 중괄호로 묶은 {코드 블럭} 뒤는 자체 종결성을 가지기 때문에 안붙임
- JS 엔진에는 세미콜론 자동 삽입 기능(ASI)이 있어 세미콜론을 꼭 안붙여도 됨
- 하지만 세미콜론을 붙이는 걸 추천
5.6 표현식인 문과 표현식이 아닌 문
- 표현식은 문의 일부일 수도 있고, 그 자체로 문이 될 수 있음
- 표현식인 문 : 값으로 평가될 수 있는 문 ⇒ 할당문 (x = 1 + 2;)
- 표현식이 아닌 문 : 값으로 평가될 수 없는 문 ⇒ 변수 선언문 (값으로 평가될 수 없음)
- 구분 방법은 변수에 할당해 보는 것, 표현식이면 변수에 할당 가능함
- 완료 값: 표현식이 아닌 문을 실행시 undefined를 출력하는 값 ⇒ 표현식의 평과 결과가 아니므로 할당 및 참조 불가