Study/JavaScript

모던 자바스크립트 Deep Dive - 5장 표현식과 문

ujam 2023. 5. 18. 22:45
728x90
반응형

 

 

📌 목차

- 값
- 리터럴

- 표현식
- 문

 

 


 

 💡 값(value)

표현식(expression)이 평가(evaluate)되어 생성된 결과를 의미한다.

 

 

var sum = 10 + 20;

 

위 예제는 10 + 20이 평가되어 30이라는 값이 sum이라는 변수에 할당된 것이다.

 

앞 챕터(4장)에서 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 혹은 메모리 공간을 식별하기 위해 붙인 이름이라고 설명했다.

따라서 변수에 할당되는 것을 이라고 한다.

 

 

* 평가(evaluate) : 식을 해석해서 값을 생성하거나 참조하는 것을 의미한다.

* 표현식(expression) : 값으로 평가될 수 있는 문(statement)이다. 즉, 표현식이 평가되면 새로운 값을 생성하거나 기존값을 참조한다.

 


💡 리터럴(literal)

사람이 이해할 수 있는 문자 또는 약속된 기호를 사용하여 값을 생성하는 표기법을 의미한다.

 

 

1

 

위에서의 1은 아라비아 숫자가 아니라 숫자 리터럴이다.

 

사람이 이해할 수 있는 아라비아 숫자를 사용해 숫자 리터럴 3을 사용하면 자바스크립트 엔진은 이를 평가해 숫자 값 3을 생성한다.

 

이처럼 리터럴은 사람이 이해할 수 있는 문자(아라비아 숫자, 알파벳 등) 또는 미리 약속된 기호('', "", [], {}, 등)로 표기한 코드이다.

자바스크립트 엔진은 코드가 실행되는 런타임 시점에 리터럴을 평가해 값을 생성한다.

 


💡 표현식(expression)

값으로 평가될 수 있는 문(statement)이다. 즉 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다.

 

var value = 100;

위 예제의 100은 숫자 리터럴이다.

리터럴 100은 자바스크립트 엔진에 의해 평가되어 생성한 값이다.

리터럴은 그자체로 표현식이다.

 

 

var value = 50 + 50;

위 예제는 50이라는 리터럴과 + 연산자로 이루어져있다.

50 + 50은 표현식이다.

 

 

표현식은 리터럴, 식별자(변수, 함수 이름 등), 연산자, 함수 호출 등의 조합으로 이뤄질 수 있다.

값으로 평가될 수 있는 문은 모두 표현식이다.

 


💡 문(statement)

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

문은 여러 토큰들의 집합이다.

선언문, 할당문, 조건문, 반복문 등으로 구분이 가능하다.

 

 

var value; // 표현식 X
var = 10 + 20; // 표현식이자 완전한 문

표현식의 정의는 값으로 평가될 수 있는 것을 의미한다.

10 + 20이라는 표현식을 통해서 30이라는 값으로 평가 되었고 해당 값을 식별자 value에 할당한다.

 

표현식인 문값으로 평가될 수 있는 문이고, 표현식이 아닌 문값으로 평가될 수 없는 문이다.

이 둘을 구별하는 가장 쉬운 방법은 변수에 할당해보는 것이다.

 

 

var a; // 변수 선언문 (표현식이 아닌 문)
var b = var a; // 할당 불가능

a = 10; // 할당문 (표현식인 문)
var b = a = 10; // 할당 가능
  • 표현식인 문은 값으로 평가되므로 변수에 할당 가능하다.
  • 표현식이 아닌 문은 값으로 평가되지 않아서 변수에 할당하면 오류가 난다.

 

 

 

* 토큰 : 문법적으로 더 이상 나눌 수 없는 코드의 기본요소를 의미함

//토큰 예제
var value 10 + 20; // (var, value, 10, +, 20, ;) 전부 토큰

 

 

 

 

 

728x90
반응형