값, 리터럴, 표현식, 문 용어 제대로 알기
1. 값
값은 표현식(expression)이 평가(evaluate)되어 생성된 결과를 말한다.
10 + 20; //30
- 위의 식은 평가되어 숫자 값 30을 생성한다. 평가란, 식을 해석해서 값을 생성하거나 참조하는 것을 뜻한다.
var sum = 10 + 20;
- 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체, 또는 메모리 공간을 식별하기 위해 붙인 이름이다. 변수에는 값이 할당된다.
- 변수 이름 sum이 기억하는 메모리 공간에 저장된 것은 10 + 20이 아니라 값 30이다. 따라서 10 + 20은 할당 이전에 평가되어 값을 생성해야 한다.
2. 리터럴
리터럴(literal)은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법(notation)을 말한다.
// 숫자 리터럴
3
- 위의 3은 숫자 리터럴이다. 사람이 이해할 수 있는 아라비아 숫자를 사용해 숫자 리터럴 3을 쓰면, 자바스크립트 엔진은 이를 평가해서 숫자 값 3을 생성한다.
- 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성한다.
- 정수 리터럴, 부동소수점 리터럴, 2진수 리터럴, 8진수 리터럴, 문자열 리터럴, 함수 리터럴, 정규 표현식 리터럴 등이 있다.
3. 표현식
표현식은 값으로 평가될 수 있는 문(statement)이다.
var score = 100;
- 위의 100은 리터럴이다. 리터럴 100은 자바스크립트 엔진에 의해 평가되어 숫자 100이라는 값을 생성하므로 그 자체로 표현식이다.
var score = 20 + 80;
- 50 + 50은 리터럴과 연산자로 이루어져 있으나, 평가되어 숫자 값 100을 생성하므로 이것도 표현식이다.
score; // 100
- 변수 식별자를 참조하면 변수 값으로 평가된다. 식별자 참조는 값을 생성하진 않아도 값으로 평가되므로 표현식이다.
- 표현식은 이렇게 값처럼 사용할 수 있다.
4. 문
문(statement)은 프로그램을 구성하는 기본 단위이자 최소 실행 단위다.
// 변수 선언문
var x;
// 할당문
x = 5;
// 함수 선언문
function foo();
// 조건문
if (x > 1) {
console.log(x);
}
// 반복문
for (let i; i < arr.length; i++) {
console.log(i);
}
- 문은 선언문, 할당문, 조건문, 반복문 등으로 구분할 수 있다.
- 문은 여러 토큰으로 구성된다. 토큰이란 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소를 말한다. (키워드, 식별자, 연산자, 리터럴, 세미콜론이나 마침표 등)