5.1. 값
- 값(value)은 식(표현식, expression)이 평가(evaludate)되어 생성된 결과
- 평가란 식을 해석해서 값을 생성하거나 참조하는 것
- 변수에 할당되는 것은 식이 아니라 평가된 결과인 값
- ex) var sum = 10 + 20 -> sum에는 10 + 20이 아닌 30이라는 값이 할당됨
5.2. 리터럴
- 리터럴(literal)은 사람이 이해할 수 있는 문자(아라비아 숫자, 알파벳 등) 또는 약속된 기호('', [] 등)를 통해 값을 생성하는 표기법
- 리터럴 종류
- 정수, 부동소수점, 2진수, 8진수, 16진수, 문자열, 불리언, null, undefined 등
5.3. 표현식
- 표현식(expression)은 값으로 평가될 수 있는 문(statement)
- 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조함
- 리터럴도 표현식
- 리터럴, 식별자, 연산자, 함수 호출 등의 조합으로 이뤄질 수 있음
5.4. 문
- 문(statement)는 프로그램을 구성하는 기본 단위이자 최소 실행 단위, 여러 토큰으로 구성됨
- 토큰(token)이란 문법적인 의미를 가지고 더 이상 나눌 수 없는 코드의 기본 요소
- 문의 집합으로 이뤄진 것이 프로그램
- 문을 작성하고 순서에 맞게 나열하는 것이 프로그래밍
- 선언문, 할당문, 조건문, 반복문 등으로 구분함
5.5. 세미콜론과 세미콜론 자동 삽입 기능
- 세미콜론(;)은 문의 종료를 의미함
- 옵션, 생략 가능하지만 사용을 권장함
- 자바스크립트 엔진에서 세미콜론 자동 삽입 기능(ASI)이 수행됨
- 0개 이상의 문을 중괄호로 묶은 코드 블록({...})은 자체 종결성을 가지므로 붙이지 않음
5.6. 표현식인 문과 표현식이 아닌 문
- 두 가지를 구별하는 방법은 변수에 할당해보는 것
- 표현식인 문은 값으로 평가될 수 있는 문 -> 할당문
- var x = 100;
- 할당문 x를 값으로 사용할 수 있음
- 표현식이 아닌 문은 값으로 평가될 수 없는 문 -> 변수 선언문
- var data = var x;
- 변수 선언문은 값으로 사용할 수 없음
[출처] 모던 자바스크립트, Deep Dive