- Published on
2023.12.23
[딥다이브] - 05. 표현식과 문
5.1. 값
값은 식이 평가되어 생성된 결과
let num = 30
let num = 10 + 20
두번째 num 변수가 갖는 값은 실제로 10 + 20이라는 식이 평가된 결과인 30으로 저장된 값은 30이다. 두 변수가 같은 값을 가지면, JavaScript 엔진은 최적화를 통해 동일한 메모리 공간을 참조할 수 있다.
5.2. 리터럴
리터럴
은 미리 약속된 기호('', "", ., [], , // 등)를 통해 값을 생성하는 표기법이다.
5.3. 표현식
표현식
은 값으로 평가될 수 있는 문
이다. 즉, 값으로 평가될 수 있는 문은 모두 표현식이다. 표현식
이 평가되면 새로운 값을 생성하거나 기존값을 참조한다. 리터럴은 값으로 평가되므로 표현식이다.
5.4. 문
문
은 프로그램을 구성하는 기본 단위이자 최소 실행 단위. 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소를 토큰
이라 하는데, 여러 토큰이 모여 문을 구성한다. 키워드, 식별자, 연산자, 세미콜론, 마침표 등의 토큰 등이 모여 선언문, 할당문, 조건문, 반복문 등의 문을 구성한다.
5.5. 세미콜론과 세미콜론 자동 삽입 기능
세미콜론
;
은 문의 종료를 나타낸다. 자바스크립트 엔진은 세미콜론으로 문이 종료한 위치를 파악하므로 문이 끝날 때는 세미콜론을 붙여야 한다. 0개 이상의 문을 중괄호로 묶은 코드 블록 { ... }
은 문의 종료를 의미하는 자체 종결성을 갖기 때문에 세미콜론을 붙이지 않아도 된다.
5.6. 표현식인 문과 표현식이 아닌 문
문에는 표현식인 문
과 표현식이 아닌 문
이 있다. 둘을 구별하는 간단한 방법은 변수에 할당해 보는 것이다. 표현식인 문은 값으로 평가되므로 변수에 할당할 수 있고, 표현식이 아닌 문은 값으로 평가할 수 없으므로 변수에 할당하면 에러가 발생한다.
var x // 변수 선언문, 값으로 평가될 수 없음, 표현식이 아님
x = 100 // 할당문, 표현식이면서 완전한 문, 표현식이다.