표현식의 정의는 값으로 평가 될 수 있는 문이다.
즉, 표현식이 평가되면 새로운 값을 생성하거나 기존의 값을 참조하게 된다.
var a = 100 //값 생성
var b = 10+20 //값 생성
이와 같이 값을 생성했으므로 표현식이라고 할 수 있다.
표현식은 리터럴(예시: 100, 30), 식별자(변수 이름 등), 연산자 등의 조합으로 이루어질 수 있다.
그럼 값은 무엇일까?
값은 표현식이 평가되어 생성된 결과를 말한다.
위의 예시에 100과 30(10+20)이 값이라고 볼 수 있다.
변수는 하나의 값을 저장하고 있다는 걸 볼 수 있다.
문은 프로그램을 구상하는 기본단위이자 최소 실행 단위이다.
문의 집합으로 이뤄진것이 프로그램이고, 문을 작성하고 순서에 맞게 나열하는 것이 프로그래밍이다.
프로그래밍 문장이 아닌 한글 문장으로 생각하면 문장을 구성하는 형태소라고 생각하면 될 것 같다.

토큰이라는 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본요소이다.
식별자, 연산자, 리터럴, 세미콜론 등의 코드의 기본요소들이 토큰이라고 볼 수 있다.
흔히 쓰이는 선언문, 할당문, 조건문, 반복문등의 "문"의 의미가 이러하다.
문에는 표현식인 문과 표현식이 아닌 문이 있다.
표현식의 정의를 다시 가져오면 다음과 같다.
표현식의 정의는 값으로 평가 될 수 있는 문이다.
즉, 표현식이 평가되면 새로운 값을 생성하거나 기존의 값을 참조하게 된다.
예를 들어 다음과 같은 변수 선언문이 있다.
var a;
이 변수 선언문은 값으로 평가 될 수 없는 문이다.
따라서 표현식이 아닌 문이다.
표현식의 문과 아닌 문을 구별하는 방법은 변수에 할당해 보는 것이다.
var a //변수 선언문은 표현식이 아니다
a = 100 // 값으로 할당했고 평가될 수 있다. 이 자체가 완전한 표현식이다.
할당문은 표현식인 문이기 때문에 값처럼 사용할 수 있다.
var b = a = 100 //변수 선언과 할당문
console.log(b);//100
위의 변수 할당문인 a = 100를 값처럼 변수 b에 할당했다.
할당문은 할당한 값으로 평가되는데 100은 a 변수에 할당한 값으로 평가되고 변수 b에도 할당이 된다는 걸 볼 수 있다.
레퍼런스: 모던자바스크립트 deepdive
'JS > deep dive' 카테고리의 다른 글
| [Javascript] 데이터 타입 (0) | 2022.04.28 |
|---|---|
| [Javascript]변수 호이스팅 (0) | 2022.04.23 |
| [Javascript] 변수 (0) | 2022.04.22 |