값
값 : 식(표현식)이 평가 되어 생성된 결과
평가 : 식을 해석해서 값을 생성하거나 참조하는 것
리터럴
리터럴 : 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법
코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성
3 // 숫자 리터럴 3
사람이 이해할 수 있는 아라비아 숫자를 사용해 숫자 리터럴 3 기입 → 이를 평가해 숫자 값 3 새성
표현식
표현식 : 값으로 평가될 수 있는 문
표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조
// 리터럴 표현식
10
'Cuttty'
// 식별자 표현식 (선언이 이미 존재한다는 가정)
str
num
arr[1]
// 연산자 표현식
10 + 20
sum = 10
sum !== 10
// 함수/ 메서드 호출 표현식 (선언이 이미 존재한다는 가정)
func()
person.getName()
문
문 : 프로그램을 구성하는 기본 단위이자 최소 실행 단위 (= 명령문)
프로그램 : 문의 집합으로 이루어진 것
토큰 : 문법적인 의미를 가지며 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소 (키워드, 리터럴, 식별자, 연산자, 세미콜론 등등)
세미콜론과 세미콜론 자동 삽입 기능
세미콜론 : 문의 종료를 의미
코드블록은 언제나 문의 종료를 의미하는 자체종결성을 갖기 때문에 세미콜론을 붙이지 않는다
표현식인 문과 표현식이 아닌 문
표현식인 문과 표현식이 아닌 문을 구별하는 가장 간단하고 명료한 방법은 변수에 할당해 보는 것
- 표현식인 문 : 값으로 평가되므로 변수 할당 가능
- 표현식이 아닌 문 : 값으로 평가할 수 없으므로 변수에 할당하면 에러 발생
var foo = var x; // 표현식이 아닌 문은 값처럼 사용 불가능
var x; // 변수 선언문은 표현식이 아닌 문 (값으로 평가되지 않으니까)
x = 100; // 할당문은 표현식인 문 (값처럼 사용 가능)
'Javascript' 카테고리의 다른 글
| [모던 자바스크립트 Deep Dive] 06. 타입 변환과 단축 평가 (0) | 2023.11.05 |
|---|---|
| [모던 자바스크립트 Deep Dive] 05. 제어문 (0) | 2023.11.05 |
| [모던 자바스크립트 Deep Dive] 04. 연산자 (0) | 2023.11.04 |
| [모던 자바스크립트 Deep Dive] 03. 데이터 타입 (0) | 2023.11.04 |
| [모던 자바스크립트 Deep Dive] 01. 변수 (0) | 2023.11.02 |