본문 바로가기

코딩/바닐라 자바스크립트

모던 자바스크립트 딥다이브 - 표현식과 문

반응형

우리는 코드를 작성하는 과정에서 값을 다룬다.

 

값을 생성하기 위해서는 표현식을 평가해야 한다.

표현식을 평가한다는 것은, 표현식을 해석해서 값을 생성하거나 참조한다는 뜻이다.

var age = 20 + 10;

위 예제에서 20 + 10은 숫자 타입 값 30을 생성하는 표현식이다.

그러므로 변수 age에는 20 + 10이 날 것 그대로 할당되지 않고, 20 + 10이 평가된 숫자 타입 값 30이 할당된다.


그렇다면 단순한 숫자 20도 표현식일까?

20;

위 예제에서 숫자 20은 리터럴이라고 부른다.

좀 더 정확히 말하자면 숫자 리터럴이다.

100; // 정수 리터럴
100.5; // 부동 소수점 리터럴
null; // null 리터럴
등등

리터럴은 약속된 기호나 문자를 사용해서 값을 생성하는 표기법을 의미한다.


표현식은 값으로 평가될 수 있는 문(statement)를 의미한다.

var age = 20 + 10;

다시 처음의 예제로 돌아와서, 20 + 10은 정수 리터럴과 연산자(+)로 이루어져 있지만, 결국 30이라는 숫자값을 생성하는 표현식이다.

 

이 표현식이 평가되어 30이라는 값을 생성한다.

결국 리터럴은 그 자체로 표현식이라고 할 수 있다.

왜냐하면 리터럴은 평가되어 값을 생성하기 때문이다.

var age = 20;
age;

위 예제에서 변수 식별자 age를 참조하면 변수 값인 20으로 평가할 수 있다.

그러므로 이것도 표현식이다.


다시 말하면 표현식은 리터럴, 식별자, 연산자, 함수 호출 등의 조합으로 이루어진다.

결국 값으로 평가될 수 있는 문(statement)는 모두 표현식이다.

 

이때 '표현식'과 '표현식이 평가된 값'은 동일한 의미를 가지므로 표현식은 값처럼 사용할 수도 있다.

var age = 20 + 10;
age + 5;

위 예제에서 변수 age에는 20 + 10이 평가된 30이 할당되어있다.

여기서 식별자 표현식 age는 30으로 평가된다.

age도 값으로 평가할 수 있으므로 여기에 5를 더해 35로 평가될 수 있는 표현식을 만들수도 있다.

 

결국 표현식은 다른 표현식의 일부가 되어 새로운 값을 만들 수 있다는 뜻이다.


문(statement)는 프로그램을 구성하는 기본단위이자 최소 실행단위이다.

컴퓨터에 내리는 명령을 문이라고 부르는데 문을 실행하면 명령이 실행되고 이벤트가 발생한다.

우리가 흔히 사용하는 조건문, 반복문도 모두 문이다.

그리고 이런 문들의 집합이 바로 프로그램이다.

 

문은 여러개의 토큰으로 구성되는데 토큰은 문법적인 의미를 가지며, 문법적으로 더이상 나눌 수 없는 코드의 기본 요소를 의미한다.

var age = 20 + 10;

위 예제에서 var, age, =, 20, +, 10은 각각 토큰이다.

다시말해, 토큰은 키워드, 식별자, 연산자, 리터럴 등등을 의미한다.

반응형