값은 표현식이 평가되어 생성된 결과!
// 10 + 20은 평가되어 30이라는 값을 생성
10 + 20; // 30
리터럴은 사람이 이해할 수 있는 문자 또는 기호를 사용해 값을 생성하는 표기법!
// 숫자 리터럴 3
3;
위 예제 3은 단순한 아라비아 숫자가 아닌 숫자 리터럴이다.
사람이 이해할 수 있는 아라비아 숫자를 사용해 숫자 리터럴 3을 코드에 기술하면 자바스크립트 엔진이 이를 평가해 숫자 값 3을 생성하는 것!
표현식은 값으로 평가될 수 있는 문(statement)!
표현식이 평가되면 새로운 값을 생성하거나 기존값을 참조한다.
let score = 99;
위 예제의 99는 리터럴이다 리터럴 99는 평가되어 값을 생성하므로 표현식이다.
let score = 99 + 1;
score;
99 + 1은 리터럴과 연산자로 이루어져 있다. 99 + 1 도 평가되어 숫자 값 100을 생성하므로 표현식이다. 변수 score 역시 식별자를 참조하면 변수 값으로 평가된다. 그러므로 이 역시 표현식이다.
문은 프로그램을 구성하는 기본 단위 이자 최소 실행단위 다!
문을 명령문이라고도 부른다. 문은 컴퓨터에 내리는 명령어다.
문이 샐행되면 명령이 실행되고 무슨 일인가가 일어난다.
문은 표현식인 문, 표현식이 아닌 문으로 나눌 수 있다.
예를 들어 변수 선언문은 값으로 평가될 수 없다. 그러므로 표현식이 아닌 문이다.
하지만 할당문은 값으로 평가되므로 표현식인 문이다.
표현식 문과 표현식이 아닌 문을 구별하는 가장 간단하고 명료한 방법 :
변수에 할당하기!
let hello = let world; // SyntaxError
위 예제의 변수 선언문은 표현식이 아닌 문이다. 값으로 평가될 수 없다.
let x;
x = 1000;
let foo = x = 1000;
할당문을 값처럼 변수에 할당했다.. 표현식인 문인 할당문은 할당한 값으로 평가된다.
할당문은 표현식인 문이기 때문에 값처럼 사용할 수 있다.